2017-10-21 8 views
1

すべてがうまくいくことを願っています。子関係laravelのwhere句を使用してデータをフェッチすることは可能ですか?

最近、CIから最近Laravelに移りました。

私は2つのテーブル 持っている - 予約 - すべての客室で、私はBooked_Rooms.checkout_atを使用して決定するchecked_outは、親レコードがデータセットから除外すべきであるnullのであればBooked_Rooms

私が欲しいものです。

私はGoogleを試してみて少しリサーチしましたが、実際に探しているものは見つかりませんでした。

私もBooking:with(array('rooms',function($q){ // where query }))を試しましたが、まだ親レコードをフェッチしています。ループごとにすべてのレコードをトラバースし、パフォーマンス測定には適していないため、レコードを除外したくありません。私は結合を使ってこれを行うことができますが、私はEloquent ORMを使用してこれを行うことができます

要約:すべてのbooked_roomsのcheckout_at列がすべてNULLでない場合、親予約レコードは完了したとみなされ、保留中の予約で。

HtlBookingモデルクラス

public function rooms() 
{ 
    return $this->hasMany('App\BookedRoom','booking_id'); 
} 

コントローラ機能

$bookings = HtlBooking::with ('rooms')->with ('user') 
     ->get(); 

答えて

2

だけ

$bookings = HtlBooking::with('rooms')->whereHas('rooms',function($q){$q->where('checkout_at',null);})->with ('user') 
     ->get(); 
を使用してそれをやった、私の答えを発見
関連する問題