我在使用laravel 4.1 hasWhere过滤关系时遇到问题。Laravel 4.1雄辩 - 过滤关系集合
迭代1 - 获取的所有帖子:完成
$posts = Post::all();
迭代2 - 获取的所有帖子延迟加载注释:完成
$posts = Post::with('comments')->get();
迭代3 - 获取意见和延迟加载仅帖子:完成
$posts = Post::with('comments')->has('comments')->get();
Iteration 4 - 仅获得发表评论和延迟加载的文章:损坏的
$posts = Post::with('comments')
->whereHas('comments', function($q) {
return $q->where('published', '=', 1);
})
->get();
print_r($posts->toArray())
的输出显示迭代3和4的输出完全相同。 我无法根据'comments.published' = 1
的条件筛选关系。
我相信问题是,你调用'在return'查询的方法。只需调用'$ q-> where('published','=',1);'(no'return' statement),你应该很好。 – Soulriser