CakePHP 3 - 你能为表设置默认条件吗?

时间:2016-04-15 17:06:09

标签: cakephp cakephp-3.0

CakePHP中有没有办法为表设置默认条件?

例如,我的表有一个deleted表,其布尔值为0或1.我希望默认情况下将应用程序限制为只选择deleted = 0的行。

1 个答案:

答案 0 :(得分:5)

实现表的beforeFind()回调并在那里添加条件。

http://book.cakephp.org/3.0/en/orm/table-objects.html#beforefind

  

Cake \ ORM \ Table :: beforeFind(Event $ event,Query $ query,ArrayObject $ options,boolean $ primary)

     

在每次查找操作之前触发Model.beforeFind事件。通过停止事件并提供返回值,您可以完全绕过查找操作。对查询的其余部分保留对$ query实例所做的任何更改。 $ primary参数指示这是否是根查询或关联查询。参与查询的所有关联都将触发Model.beforeFind事件。对于使用连接的关联,将提供虚拟查询。在事件侦听器中,您可以设置其他字段,条件,联接或结果格式化程序。这些选项/功能将复制到根查询中。

     

您可以使用此回调根据用户的角色限制查找操作,或根据当前负载制定缓存决策。