我使用Symfony 4.1,我需要从我的数据库中获取结果,不包括一些标准。
现在,我在我的仓库中使用查询:
->andWhere('p.status != :sold')
->setParameter('sold', STATUS_SOLD)
...
但我认为这不是好方法,因为我需要处理所有查询和关系。
我想到了Listener / Subscriber和postLoad
事件。我不知道这是不是正确的方法,因为文档很差。
为整个应用程序应用实体标准的最佳方法是什么?
请看看Doctrine Filters documentation在你的情况下,你会写一些类似的东西
if (!$targetEntity->reflClass->implementsInterface('SoldAware')) {
return "";
}
return $targetTableAlias.'.status <> ' . Statuses::STATUS_SOLD;