2017-05-24 114 views
1

我想要得到的数据,如果连接表不为空,所以我不喜欢这样Laravel 5.4雄辩用,并使用其中

$projects = Project:: 
      with(array('owner'=> function($query) use ($request){ 
       $query->where('owner_id',$request->input('owner_id')); 
      }))->with('plans')->get(); 

我得到的所有项目的业主,如果不为空和计划,但查询,我想得到项目业主,如果不为空

enter image description here

所以,如果车主空不是我想要得到的项目,我想空[]。

如何解决这一问题,并感谢

回答

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();