$tag = Tag::find($id)->whereHas('posts', function($q){
$q->where('status','=', 1);
})->get();
此外:
$tag = Tag::whereHas('posts', function($q) {
$q->where('status','=', 1);
})->where('id','=', $id)->get();
你能帮帮我吗?
这是一件简单的事情,但我无法做到这一点......
答案 0 :(得分:1)
您需要阅读Eloquent
个文档。了解find
,first
,get
的内容。
您的代码可以满足您的需求,甚至更多(虽然有点不对);)
$tag = Tag::find($id) // here you fetched the Tag with $id
->whereHas('posts', function($q){ // now you start building another query
$q->where('status','=', 1);
})->get(); // here you fetch collection of Tag models that have related posts.status=1
所以,这就是你想要的:
$tag = Tag::whereHas('posts', function($q){
$q->where('status','=', 1);
})->find($id);
如果没有匹配Tag
子句或给定null
的行,它将返回where
模型或$id
。
答案 1 :(得分:0)