CakePHP3-您可以为表设置默认条件吗?

CakePHP3-您可以为表设置默认条件吗?,cakephp,cakephp-3.0,Cakephp,Cakephp 3.0,在CakePHP中有没有一种方法可以为表设置默认条件 例如,我的表中有一个已删除的表,其布尔值为0或1。我希望在默认情况下将应用程序限制为仅选择deleted=0的行,实现表的beforeFind()回调并在其中添加条件 Cake\ORM\Table::beforeFind(事件$Event,查询$Query,ArrayObject$选项,布尔$primary) Model.beforeFind事件在每次查找操作之前激发。通过停止事件并提供返回值,可以完全绕过查找操作。对$query实例所做的

在CakePHP中有没有一种方法可以为表设置默认条件

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

的行,实现表的beforeFind()回调并在其中添加条件

Cake\ORM\Table::beforeFind(事件$Event,查询$Query,ArrayObject$选项,布尔$primary)

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

您可以使用此回调来限制基于用户角色的查找操作,或者根据当前负载做出缓存决策


beforeFind()方法的实际位置和文档记录在哪里?我在API文档中找不到它,我想知道更多关于它的信息,而不仅仅是方法签名和描述。那么,我建议您也阅读本书的整个事件章节。您需要在带有签名的表对象中实现该方法,因为正如书中所说,它是一个事件回调。