Отношения сущностей Doctrine 2: каскадное слияние

Я управляю сложными объектами с множественными и разными отношениями с другими объектами, которые сами иногда связаны с несколькими другими объектами.

Я создаю форму редактирования и не хочу вручную кодировать различные запросы Doctrine 2 для обновления каждой сущности, связанной с измененной сущностью.


Возможно ли каскадное слияние сущностей в Doctrine 2? Под этим я подразумеваю изменение объекта и связанных с ним объектов (отношения один ко многим, МногиеToMany ...), а затем каскадное применение изменений к объекту и связанным объектам.

Если нет, то каков «чистый» способ применить модификации ко всем заинтересованным объектам? Нужно ли это делать вручную, вызывая слияние или обновление для каждой сущности?

@Dragos да, я сделал, и он работает при правильном создании нового объекта со связанными объектами, используя persist. Но это не работает при вызове слияния с измененной существующей сущностью. При этом основной объект изменяется правильно, но изменения, внесенные в связанные объекты, полностью игнорируются.

NanoPish 01.08.2018 13:46

извините, я удалил свой первый комментарий, потому что наткнулся на ответ это

Dragos 01.08.2018 13:48

@Dragos нет проблем

NanoPish 01.08.2018 13:50
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Symfony Station Communiqué - 17 февраля 2023 г
Symfony Station Communiqué - 17 февраля 2023 г
Это коммюнике первоначально появилось на Symfony Station , вашем источнике передовых новостей Symfony, PHP и кибербезопасности.
Управление ответами api для исключений на Symfony с помощью KernelEvents
Управление ответами api для исключений на Symfony с помощью KernelEvents
Много раз при создании api нам нужно возвращать клиентам разные ответы в зависимости от возникшего исключения.
1
3
542
2

Ответы 2

Похоже, вы работаете над Symfony (поправьте меня, если я ошибаюсь).

В формах symfony, когда вы работаете с нижележащими объектами, вам иногда нужно установить для параметра «by_reference» значение «false», чтобы правильно обрабатывать нижележащие измененные объекты.

Смотрите, что: https://symfony.com/doc/current/reference/forms/types/form.html#by-reference

Надеюсь, поможет.

Привет, я работаю над symfony, но использую его как api отдыха с угловатым фронтом. Я не использую формы Symfony.

NanoPish 01.08.2018 16:02

Скорее всего, проблема не в Symfony, а больше в ваших отношениях с доктринами. Вам следует проверить свои ассоциации, поскольку изменения, внесенные только в обратную сторону ассоциации, игнорируются доктриной. Обратитесь к документация.

Мои отношения двунаправленные и работают правильно для создания нового объекта, но не при изменении существующего с помощью сохранения / слияния.

NanoPish 01.08.2018 17:49

Да, это звучит полностью как проблема владения-обратной стороны, как я упоминал выше. Предлагаю проверить, вносите ли вы изменения только в обратную сторону ассоциации.

iiirxs 01.08.2018 18:10

Другие вопросы по теме