假设我有一个文章数据库,我只想显示在网站上发布的文章(其中已发布 = 1)。而不是在每个查找查询中添加条件,如下所示:
$articles = $this->Articles->find('all')->where(['published' => 1]);
有没有一种方法可以在一个地方自动将此条件应用于整个应用程序中的所有查找查询?如果有怎么办?
假设我有一个文章数据库,我只想显示在网站上发布的文章(其中已发布 = 1)。而不是在每个查找查询中添加条件,如下所示:
$articles = $this->Articles->find('all')->where(['published' => 1]);
有没有一种方法可以在一个地方自动将此条件应用于整个应用程序中的所有查找查询?如果有怎么办?
您可以使用beforeFind
. 这将在您的文章模型上的每个查找查询之前触发。这是文档
这是如何使用它
public function beforeFind($event, $query, $options, $primary)
{
$query->where(['article.visible' => 1]);
return $query;
}