有没有办法普遍影响symfony2中的所有教义查询


Is there any way to universally affect all doctrine queries in symfony2

我有大约 30 个实体,都在查询数据库。现在我希望我应该只在我有ACTIVE = 1的地方获得那些记录。我的所有表都有该字段。

一种方法是更改我正在使用的所有查询。

有没有其他选择,我可以在执行之前获取查询并像任何Listener or event一样从单个函数添加where clause

确实如此。它被称为"过滤器" - 您可以根据需要激活和停用它们。请参阅此处的手册:http://docs.doctrine-project.org/en/latest/reference/filters.html。

您可以在Symfony2中使用配置文件中doctrine节点下的"过滤器"节点来配置它们。每个过滤器应该有两个子节点:"类"和"启用"(当然,启用应该是真的,类应该是指向过滤器的 FQCN)。