2016-04-08 13 views
0

私は2つのテーブルSong(belongsTo App \ Host)とホスト(hasMany App \ Song)を持っています。 My Songsテーブルにはattemptsの列があり、Hostテーブルにはskip_thresholdがあります。私は、関連するホストのスキップしきい値を満たしていないすべての曲を照会したいと思います。EloquentのWHERE句での外部キーデータの参照

どうすればいいですか?私はこのような何かを試してみました

は:

return $songs = Song::whereIn('host_id', $available_hosts) 
         ->where('attempts', '<', $songs->host->skip_threshold)->get(); 

私は雄弁関係の照会を使用することを試みましたが、テストから、私は、これは動作しません参照してください。私はEloquentを使ってこれを行うようにしたいので、私はブレードテンプレートに熱心な負荷関連データを利用することができます。私はあなたが探しているものを理解していた場合

答えて

0

あなたが一緒に連鎖することができ、

$songs = Song::whereHas('host', function($query) { 
    $query->where('skip_threshold', '>', DB::raw('songs.attempts')); 
})->get(); 
+0

どのように私はこれをクエリに追加できますか?私は、特定のホストキーの照会を許可したいだけです。 – Imran

+0

前に説明したように単純に入れてください。 @ダビッドはあなたのためにそれをやった。 – trinvh

1

を試みることができるwhere句、そのような:これは、必要に応じて動作しますが、ここを削除し

$songs = Song::whereHas('host', function($query) { 
    $query->where('skip_threshold', '>', DB::raw('songs.attempts')); 
})->whereIn('host_id', $available_hosts)->get(); 
関連する問題