symfony - Symfony 4 对实体使用全局标准
问题描述
我使用 Symfony 4.1,我需要从我的数据库中获取不包括某些标准的结果。
现在,我在我的 repo 中使用查询:
->andWhere('p.status != :sold')
->setParameter('sold', STATUS_SOLD)
...
但我认为这不是好方法,因为我需要处理所有查询和关系。
我想到了侦听器/订阅者和postLoad
事件。我不知道这是否是正确的方法,因为文档很差。
为整个应用程序应用实体标准的最佳方法是什么?
解决方案
请查看Doctrine Filters 文档在您的情况下,您将编写类似的内容
if (!$targetEntity->reflClass->implementsInterface('SoldAware')) {
return "";
}
return $targetTableAlias.'.status <> ' . Statuses::STATUS_SOLD;
推荐阅读
- javascript - VueJS 不在电子应用程序内的 DOM 上呈现数据
- javascript - 无法读取 null 的属性“classList”
- python - 如何正确安装 virtualenv 和 virtualenvwrapper?
- c++ - Boost bootstrap 抛出错误
- python - 在 matplotlib 散点图中自定义 x 和 y 标签
- c# - 如何为 EF 6.4 和 MySQL C# 启用迁移?
- r - ANOVA 模型中的“+”与“*”有什么区别?
- html - 谷歌如何给出如此快速的建议?
- python - Numpy.arange:ValueError:具有多个元素的数组的真值不明确。使用 a.any() 或 a.all()
- javascript - Highcharts:热图的共享工具提示