2017-05-24 159 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();