Автоматически отфильтровывать строки, которые не соответствуют условию в Doctrine

У меня уже есть база данных, и я не могу ее изменить. В этой базе данных я использую «мягкое удаление»: вместо фактического удаления записи я просто изменяю флаг (например, настройка del=1).

Я не использую шаблон GEDMO (SoftDelete), но мне нужна та же функциональность. В настоящее время, когда я использую функции QueryBuilder / find, они возвращают записи с del=1, Та же идея о функциях ассоциаций; Я должен проверять каждый раз, если del=0,

Есть ли способ автоматически отфильтровывать записи с флагом del=1разве это явно не запрошено?

1

Решение

Другие решения

Другая перспектива — сделать ваш код более читабельным и, возможно, более простым, выполнив что-то вроде этого:

$entity = $em->getRepository("MyBundle:Entity")->findBy(['del' => 0]);

Это добавляет очень мало кода и очевидно для любого читателя, что вы делаете.

редактировать

В качестве альтернативы, если ваша база данных & разрешения привилегий (например, root в MySQL) вы можете создать представление, которое содержит только del=0 записей. Для MySQL вот СОЗДАТЬ ВИД doc. Учение разрешает использование взглядов.

0

По вопросам рекламы [email protected]