查询关系在数据透视表中的数据的最简单方法?

时间:2016-04-17 13:20:20

标签: php laravel-5 eloquent laravel-5.2

我有两张与标准数据透视表相关的表格。

现在,我只想要那些属于特定category_id

的文章

我找到了类似的解决方案:

Width

这是使用Eloquent在Laravel 5中最好最简单的方法吗?

1 个答案:

答案 0 :(得分:1)

一般情况下 - 是的,这就是方法,但你也可以为此创建范围以便更清洁地使用,特别是在您多次使用它的情况下。

您可以将范围添加到Article模型中,如下所示:

public function scopeHavingCategory($query, $cat_id)
{
   return $query->whereHas('categories', function($q) use ($cat_id) { 
           $q->where('category_id', $cat_id); 
   });
}

现在您可以这样使用它:

Article::havingCategory($cat_id)->get();