представьте, что у меня есть doctrine объект, и у меня может быть несколько записей об этом объекте в базе данных, которые я не хочу удалять, но я хочу, чтобы они были видны.
В общем, у меня могут быть объекты, для которых у меня есть записи по умолчанию, которые должны оставаться там - их нельзя удалять, но они должны быть видны.
Или, например, я хочу иметь специальную учетную запись пользователя только для операций CRON. Я хочу, чтобы эта учетная запись была видна в списке пользователей, но не должна быть удалена - очевидно.
Я искал, и лучшее, что я получил, было SoftDeletable https://github.com/Atlantic18/DoctrineExtensions/blob/v2.4.x/doc/softdeleteable.md Это предотвращает физическое / реальное удаление из БД, но также делает его невидимым на передней панели приложения. Это хороший подход - сделать столбец в соответствующем столбце таблицы сущности - флаг 1/0 - который будет отмечать то, что не может быть удалено. Я также хотел бы, чтобы это так, потому что он может быть использован в качестве Черты в нескольких сущностях. Я думаю, что это было бы хорошим кандидатом для другого расширения в вышеупомянутом расширении Atlantic18 / DoctrineExtensions. Если вы считаете, что это хорошая идея (Doctrine filter), как лучше всего это сделать?
Вопрос в том, единственный ли это путь? У вас есть лучшее решение? Каков общий способ решения этой проблемы?
РЕДАКТИРОВАТЬ: 1. Итак, мы знаем, что нам нужен дополнительный столбец в базе данных - это легко сделать чертой для него чтобы сделать его многоразовым Но 2. Чтобы не иметь никакого дополнительного кода в каждом репозитории, как выполнить sh лог c из «если столбец истинен, предотвратить удаление» с помощью аннотации? Как и в приведенном выше примере SoftDeletable.
Заранее спасибо.