Как установить для удаленного свойства значение true вместо удаления связанной сущности доктрины в Symfony - PullRequest
0 голосов
/ 01 марта 2019

Я создаю приложение, которое позволяет пользователю создавать отчеты для рекламодателей.Сущности настроены таким образом, что между объектом Report и объектом Advertiser существует связь - так что у рекламодателя есть метод getReports () для их получения.

Я хотел бы изменить приложение, чтобы вместо негофактического удаления сущностей, что он просто меняет «удаленное» свойство на true.С этой частью проблем нет, но я не уверен, как сделать так, чтобы getReports () в сущности рекламодателя возвращал только отчеты для рекламодателя, у которых удалено свойство false.

Пожалуйста, дайте мне знать, еслиу вас есть предложения, как это сделать в соответствии с лучшими практиками Symfony.

1 Ответ

0 голосов
/ 01 марта 2019

Вы должны изучить Расширения Доктрины Гедмо.http://atlantic18.github.io/DoctrineExtensions/

Специально для вашего случая: http://atlantic18.github.io/DoctrineExtensions/doc/softdeleteable.html

TLDR;они позволяют вам настраивать поведение ваших сущностей так, как вы хотите, поэтому, например, когда вы «удаляете» сущность, слушатели Gedmo установят значение deleted на текущую дату и время.Теперь у вас по-прежнему будет эта запись в вашей базе данных, но со значением not null в столбце deleted, помечающем ее как «мягкое удаление», поэтому при запросе она не будет возвращена (потому что Doctrine знает, как запросить эти вещи, идобавить условие, например: ... where deleted ...), если вы явно не скажете, что хотите просмотреть эти мягко удаленные записи.

...