我想获取数据,如果连接表不为空,所以我做这样的查询
$projects = Project::
with(array('owner'=> function($query) use ($request){
$query->where('owner_id',$request->input('owner_id'));
}))->with('plans')->get();
我获得所有项目的所有项目,如果不是null和计划,但是,我想得到项目,如果所有者不为空
所以如果所有者为null我想要不得到项目我想得到null []。
如何解决此问题并感谢
答案 0 :(得分:2)
使用has()
代替with()
:
Project::has('owner')->with('plans')->get();
此查询将加载拥有所有者并计划的所有项目。
如果您只想加载指定所有者的项目,请改用whereHas()
。
Project::whereHas('owner', function ($q) use ($request) {
$q->where('owner_id', $request->owner_id);
})
->with('plans')
->get();