Юра
Да в идеале 64
Корочка
Всем привет. Может кто сталкивался. Использую API Platform и Symfony, при попытки сохранить данные возникает вот такая проблема. Погуглил, почитал почему это. Причина ясна. Может кто знает как отключить такую проверку? Поле может быть NULL, но все равно просит id этой записи чтобы найти ее в БД
Корочка
Он говорит, что не может найти объект по указанному полю
Корочка
Точнее я должен передать обязательно это поле чтобы он нашел нужный объект
Корочка
Вот в таком формате он просит ссылку на объект, и потом он находит этот объект, но зачем он ищет этот объект если поле может быть null
Корочка
В конце null написано для теста работы
Корочка
А так надо туда id передать верный, только мне вот это не нужно как раз делать и мне надо отключить эту проверку
Корочка
Он просит такую ссылку тогда
Павел
Корочка
Он говорит не могу найти ссылку на такой то объект. Дайте мне эту ссылку
Корочка
nullable стоит везде?
Да, в БД в аннотациях, что ему еще надо прописать!?
Корочка
Корочка
Павел
Проверьте еще контексты нормализации и денормализации у самого ресурса, может они вообще не срабатывают
Павел
Ну и запрос пришлите, может кто подскажет, так более понятен кейс будет
Павел
Еще проверьте, является ли это ошибка именно при сохранении, может у вас сохраняется ок, а вот чтение уже касячит
Корочка
Да, спасибо посмотрю конечно
Павел
Хотя iri в чтении наверное не имеет смысла)
Павел
В общем наверняка проблема в правильном описании анотаций или в запросе, без них тяжеловато будет гадать. Платформа сильно чувствительна к тому, что сущностях. Кейс выглядит дефолтным, nullable связь, там не должно быть проблем
Юра
JoinColumn можешь убрать там по дефолту все так как у тебя
Корочка
Спасибо уберу
Корочка
Если кому будет нужно проблему решил. Оказывается, в связанную таблицу надо было дописать в группы "getCostBlanks:write", разрешение на запись ID, так как в таком случаи он разрешает пройти записи с null
Павел
Поэтому и просил приложить запрос и сущности.
Корочка
Значит вы обращались на один ресурс, а работали с другим где не описали группы
Ну я это указал, что ссылка указывает на связанный объект
Корочка
И вот в этом объекте надо было для такой же группы, разрешить запись
Павел
Ну я это указал, что ссылка указывает на связанный объект
Не ссылка, у вас не срабатывали группы денормализации
Корочка
Они срабатывали
Павел
Например, почему account:write помог? Откуда вообще он взялся?
Павел
Значит вы работаете в account:write
Корочка
Вот тут есть связь с таблицей Account
Корочка
И здесь группы на разрешение записи данными
Павел
И здесь группы на разрешение записи данными
Нет, это просто группы которым вы дали названия какие то
Корочка
Это связано вообще с тем, чтобы можно было удалять данные, а для удаления он просто именно группу с типом write
Корочка
Добавил группу getCostBlanks:write к сущность Account, связь с которой я указал выше и все заработало
Юра
Не люблю апи платформ за то что ошибки которые с ним возникают вообще непонятно как решать кроме дебага
Юра
Думал может они это улучшили, но судя по всему нет
Корочка
Не люблю апи платформ за то что ошибки которые с ним возникают вообще непонятно как решать кроме дебага
Да это правда. Люди пишут такое же да. Документация у Платформы, ну такое себе. Простые вещи иногда превращаются в какое то страдание
Павел
Не люблю апи платформ за то что ошибки которые с ним возникают вообще непонятно как решать кроме дебага
Ну таких штук не много и в основном в начале, когда только ее постигаешь
Корочка
Ну таких штук не много и в основном в начале, когда только ее постигаешь
Тогда более явно надо указывать такие вещи в документации. Потому что это вызвало проблему у многих, судя по статьям на эту тему
Павел
Тогда более явно надо указывать такие вещи в документации. Потому что это вызвало проблему у многих, судя по статьям на эту тему
Я бегло погуглил, там ошибка похожая но не та. Тут просто надо понимание процесса нормализации и денормализации платформы и симфони
Павел
Например на вашем скрине с SO вообще похоже забыли нормально связь поставить
Юра
Типо возможно вы не указали то-то
Корочка
Мне кажется такие вещи могут сразу в тексте ошибки быть
Нет к сожалению такого нет. Он просто выдает что ссылку на связанную сущность не найдена. Если не передавать ссылку, то он ее просит, а если указать в связанной сущности группу на записи, то уже ошибки нет
Юра
Так они и написаны)
Там ошибка вообще говорит ниочем
Юра
Она скорее путает
Павел
Там ошибка вообще говорит ниочем
Так мы и не знаем что ТС передавал, если посмотреть его скрин он вообще конкатинировал iri + null.
Корочка
Потому что неверно настроены группы нормализации и денормализации
Они верно настроены. Но почему надо указывать группу на разрешение записи в связанную сущность остается загадкой
Павел
Как такое вообще дебажить даже пытаясь ответить в чате?
Павел
Что это вообще такое было iri +null ?
Павел
даже для дебага
Корочка
Если вы не внимательно читаете
Павел
Если вы не внимательно читаете
Я читал, это полностью некорретная запись
Павел
iri +null ни в каком флоу не может быть верным
Корочка
Это просто запись одна из немногих для теста работы, посмотреть поведение, о чем выше и написал
Павел
потому что null - это строка
Павел
и если надо установить null, то передается не property = /iri/null а property=null
Павел
ну по крайней мере так работает с json
Корочка
Еще раз выше было написано что это для тестирование работы сделано для того, чтобы посмотреть разное поведение
Корочка
Вас немного зациклило
Корочка
Всех благодарю за помощь
Павел
Чет они вообще беда какая то с докой платформы. Кучу js добавили в описание, убрали старые версии, хотя там есть изменения в минорных версиях. И так было не особо понятно, сейчас вообще мрак :(
Юра
Я вообще не понимаю как можно убирать предыдущие версии из доки
Юра
Это сразу говорит о том что это стремный фреймворк, желания читать доку через вебархив как-то нет
Юра
Либо просто вы не нашли
Kirill
апи платформ в принципе стрёмный)
Kirill
поставить valinor, накидать дто для реквестов и респонзов и в путь
Павел
Либо просто вы не нашли
Возможно, раньше справа был переключатель, теперь там полностью новый диз и такого не вижу и на странице
Павел
апи платформ в принципе стрёмный)
У платформы интересный денормалайзер который работает с доктриной. В целом переусложненный, но если разобраться неплохой инструмент для лоу кодинга. Valinor надо посмотреть что такое)))