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

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

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

有没有一种方法可以在一个地方对整个应用程序中的所有查找查询自动应用此条件?如果是这样怎么办?


aluckdog
浏览 120回答 1
1回答

蝴蝶刀刀

您可以使用beforeFind. 这将在您的文章模型上的每个查找查询之前触发。这是文档这是如何使用它public function beforeFind($event, $query, $options, $primary){    $query->where(['article.visible' => 1]);    return $query;}
打开App,查看更多内容
随时随地看视频慕课网APP