过滤实体CakePHP 3.6上的所有查找查询

过滤实体CakePHP 3.6上的所有查找查询,php,cakephp,php-7,cakephp-3.6,Php,Cakephp,Php 7,Cakephp 3.6,假设我有一个文章数据库,我只想显示在站点上发布的文章(其中published=1)。而不是在每个查找查询中添加条件,如下所示: $articles = $this->Articles->find('all')->where(['published' => 1]); 是否有一种方法可以在一个位置自动将此条件应用于整个应用程序中的所有find查询?如果是这样,如何查找?您可以在查找之前使用。这将在您的文章模型上的每个find查询之前触发。这是你的电话号码 下面是如何使用它

假设我有一个文章数据库,我只想显示在站点上发布的文章(其中published=1)。而不是在每个查找查询中添加条件,如下所示:

$articles = $this->Articles->find('all')->where(['published' => 1]);

是否有一种方法可以在一个位置自动将此条件应用于整个应用程序中的所有find查询?如果是这样,如何查找?

您可以在查找之前使用
。这将在您的文章模型上的每个find查询之前触发。这是你的电话号码

下面是如何使用它

public function beforeFind($event, $query, $options, $primary)
{

    $query->where(['article.visible' => 1]);

    return $query;
}

您可以在查找之前使用
。这将在您的文章模型上的每个find查询之前触发。这是你的电话号码

下面是如何使用它

public function beforeFind($event, $query, $options, $primary)
{

    $query->where(['article.visible' => 1]);

    return $query;
}