2017-08-10 8 views
0

クエリーが間違ったデータを検索しています。departamentonullでないのみを取り出す必要があります。誰でも助けてくれますか?クエリービルダーによるLaravelフィルターの間違ったデータの取り出し

コード:関係に

$banca = Banca::with(['trabalho.membrobanca.departamento' => function($query) use ($d) { 
    $query->where('id', $d); 
}])->get(); 

$banca = collect($banca) 
    ->unique('trabalho_id') 
    ->values() 
    ->all(); 

Result this

図。

Diagram

+0

私の答えをチェックしてください。十分なhttps://stackoverflow.com/a/45606389/5013099 –

答えて

0

あなたがnull値にmemrobancaテーブルやフィルターにフィルターをかけることができます:それは、departamento

$banca = Banca::with(['trabalho.membrobanca.departamento' => function($query) use ($d) { 
    $query->where('id', $d); 
}]) 

// has function will return banca if banca has non-null departamento 
->has('trabalho.membrobanca.departamento') 

->get(); 
この

チェックnullではないリターンバンカを返します。

$banca = Banca::with([ 
     'trabalho.membrobanca' => function($query) use ($d) { 
      $query->where('departamento_id', $d) 
       ->whereNotNull('departamento_id') 
       ->with('departamento'); 
     } 
    ]) 
    ->get(); 
+0

'with'メソッド内のスコープ付きクエリは' Banca'クエリビルダー(CMIIW)です。だから、 'Banca'に' departamento_id'カラムがあることをどうお知りになりますか? – Alfa

+0

私はあなたの質問に投稿した結果セットでそれを見ることができるので、 'departemento_id'があることを知っています。 – Jerodev

+0

それに気付かなかった。私はそれがうまくいくと思います。 – Alfa

関連する問題