2017-10-14 87 views
-1

問題:Laravel雄辯關係檢索使用子表記錄

我想只有記錄,其中相關記錄[user]不爲空。

在我的情況下我只想要第一個記錄。其中user不是空

結果: enter image description here

用戶表

  • ID
  • 電子郵件

項目TABEL

  • ID
  • 標題
  • USER_ID [foreign key]

我的代碼是這樣的

$projects = App\Project::with(['user' => function ($user) { 
        $user->where('name', '=', 'Ketan'); 
       }]) 
       ->get(); 

foreach ($projects as $project) { 
    echo $project->title.' - '.$project; 
} 

我的結果是這樣的: enter image description here

+0

你是否需要只有一個項目(任何項目),其中用戶不是'null'? –

+0

是的,@AlexeyMezenin。我想要任何用戶不是null的項目。 只要我將這個條件應用於結果。我發現 6月1日的結果頁面上, 5結果第二頁, 8結果第3頁上, 等等..... 所以,**我想在查詢申請沒有結果這個條件。 ** –

回答

-1

你可以試試:

$projects = App\Project::with(['user' => function ($user) { 
        $user->where('name', '=', 'Ketan'); 
       }]) 
       ->get(); 

foreach ($projects as $project) { 
    if($project->user != null){ 
     echo $project->title.' - '.$project; 
    } 
} 
+0

這不是一個好的解決方案。它會從數據庫加載每個項目,然後再循環並僅打印出用戶。 – fubar

0

我得到了我的問題

$projects = App\Project::whereHas(['user' => function ($user) {   <--Change Here 
        $user->where('name', '=', 'Ketan'); 
       }]) 
       ->get(); 

只有更改 '與' 到 'whereHas'

通過該解決方案,我的解決辦法只有那些用戶(關係記錄)不爲null的項目記錄。