我有大约30个实体,都在查询数据库。
现在我希望我只能获得ACTIVE = 1
的记录。我的所有桌子都有这个字段。
一种方法是更改我正在使用的所有查询。
还有其他选择,我可以在执行之前抓取查询并从单个函数添加where clause
,如任何Listener or event
答案 0 :(得分:4)
事实上。它被称为“过滤器” - 您可以根据需要激活和停用它们。请参阅此处的手册:http://docs.doctrine-project.org/en/latest/reference/filters.html。
您可以使用配置文件中的doctrine节点下的“filters”节点在Symfony2中配置它们。每个过滤器应该有两个子节点:“class”和“enabled”(当然应该启用;为true,类应该是指向过滤器的FQCN)。