是否可以在Eloquent的单个方法中放置多个关系约束?

时间:2016-01-06 05:19:09

标签: laravel eloquent

我有一个如下所示的查询:

Post::whereHas('comments', function ($query) {
    $query->where('content', 'like', 'foo%');
})->whereHas('comments', function ($query) {
    $query->where('content', 'like', 'bar%');
})->get()

喜欢需要所有帖子,其中有一条评论带有像'foo'这样的文字,还有一条评论带有像'bar'这样的文字。我能以某种方式将这两个请求混合在一起吗?

1 个答案:

答案 0 :(得分:0)

是的,可以将多个where子句链接起来,但是你只能使用::一次(在模型名称之后),对于其他所有子句,它应该->就像你一样添加了->get()

所以你最终会得到:

Post::whereHas('comments', function ($query) {
    $query->where('content', 'like', 'foo%');
})->whereHas('comments', function ($query) {
    $query->where('content', 'like', 'bar%');
})->get()