Laravel 4 如何在查询中用关系雄辩地指定条件

Laravel 4 如何在查询中用关系雄辩地指定条件,laravel-4,eloquent,Laravel 4,Eloquent,我有两张桌子: 文章 id |标题|类别| id |创建|更新|在| 和类别 id |名称|描述|创建|更新|在| 关系:类别有许多->文章和文章属于->类别 查询的简单方式如下: public functions getArticles ($category) { $articles = Articles::where('category', '=', $category); } 在文档中存在Id为()的示例,但我希望选择文章,知道名称类别 查询中如何用关系指定条件 如果有这样的

我有两张桌子:

文章 id |标题|类别| id |创建|更新|在| 和类别 id |名称|描述|创建|更新|在| 关系:类别
有许多->文章
和文章
属于->类别

查询的简单方式如下:

public functions getArticles ($category) { 

   $articles = Articles::where('category', '=', $category);

}
在文档中存在Id为()的示例,但我希望选择文章,知道名称类别

查询中如何用关系指定条件

如果有这样的方法,请帮助我。
谢谢;)

您可以使用
whereHas
方法。比如:

$articles = Articles::whereHas('category', function($query)use($category){
    $query->where('name', $category->name);
});

我想那应该行得通。或者您可以创建一个
范围
并加入
类别
表,然后通过它进行检查。

谢谢)它工作了!我能问你一个问题吗?P.S.СПабб我想对多个列进行排序。告诉我,也许你们知道,我在哪里可以阅读或看到视图中的排序示例?例如,文章按作者或发表日期排序。就像这里,也许这是在jQuery的帮助下制作的?只需像
http://somepage.org/search?order[publish_date]=desc&order[id]=asc
,然后使用
Input::get('order',[])获取控制器中的所有订单
,并对其进行迭代,将新订单添加到查询中,如
foreach($orders as$key=>$order){$query->orderBy($key$order);}
谢谢)如果我有一些问题,我可以写在这里吗?