Symfony 4对实体使用全局标准

时间:2018-08-31 07:31:14

标签: symfony doctrine

我使用的是Symfony 4.1,需要从数据库中获取结果,但不包括某些条件。

现在,我在仓库中使用查询:

 ->andWhere('p.status != :sold')
 ->setParameter('sold', STATUS_SOLD)
 ...

但是我认为这不是好方法,因为我需要处理所有查询和关系。

我想到了侦听器/订阅者和postLoad事件。我不知道这是否是正确的方法,因为该文档非常糟糕。

在整个申请中为实体应用准则的最佳方法是什么?

1 个答案:

答案 0 :(得分:3)

请查看Doctrine Filters documentation,您的情况将是类似的

if (!$targetEntity->reflClass->implementsInterface('SoldAware')) {
    return "";
}

return $targetTableAlias.'.status <> ' . Statuses::STATUS_SOLD;