表:组
id name status
表:项目
id group_id name publish
型号:组
public function items()
{
return $this->hasMany('App\Item');
}
现在,我想获取运行状态的所有组模型,然后发布发布的所有相关项目模型。
我这样做...
$query = Group::where('status', 'running')->items()->where('publish', 'published')->get();
显示以下错误消息。
Call to undefined method Illuminate\Database\Eloquent\Builder::items()
怎么了? 有什么办法吗?
注意此修改:
**How will I get all item models where group model's status is running and item model's publish is published.**
答案 0 :(得分:0)
在您的情况下,查询应如下所示
$result = Group::whereHas('items', function($query){
$query->where("publish","published");
})
->where("status", "running")
->select('items')
->get();
$result
将所有带有groups
的{{1}}作为status
,所有具有running
状态的'items'都作为publish
。
答案 1 :(得分:0)
您应该尝试以下操作:
$users = Group::whereHas('items', function($q){
$q->where('publish', 'published');
})
->where('status', 'running')
->get();