我的模型中有一个方法:
public function scopePublished($query)
{
return $query->where('status', 'PUBLISHED')
->where('date', '<=', date('Y-m-d'))
->orderBy('date', 'DESC');
}
此方法将在多个地方用于检索已发布的文章。
但是,现在,我在我的控制器中,我想使用这个功能。我怎样做?我从Laravel(和OOP)开始。
我试试这个:
$query = Article::paginate(8)
scopePublished($query)
答案 0 :(得分:2)
如果我正确理解您的问题,您想要对已发布的文章进行分页。所以你可以这样做。
$query = Article::published()->paginate(8)
有关详细信息,请查看Query Scopes
下的Local Scopes
答案 1 :(得分:0)
范围用作查询的一部分,而不附加单词scope
。在您的情况下,您可以像这样使用它
$articles = Article::published()->paginate(8);
查看官方文档,了解有关本地和全球范围的更多信息。