Laravel - whereHas checking latest record of a relationship without checking others

后端 未结 4 520
悲哀的现实
悲哀的现实 2020-12-12 01:40

I have two tables that has One to Many relationship.

Bookings - (id)

booking_tasks - (id, booking_id,user_id)

one booking h

4条回答
  •  挽巷
    挽巷 (楼主)
    2020-12-12 02:20

    This requires a more complex query:

    $bookings = Booking::select('bookings.*')
        ->join('booking_tasks', 'bookings.id', 'booking_tasks.booking_id')
        ->where('booking_tasks.user_id', 2)
        ->where('booking_tasks.id', function($query) {
            $query->select('id')
                ->from('booking_tasks')
                ->whereColumn('booking_id', 'bookings.id')
                ->latest()
                ->limit(1);
        })->get();
    

提交回复
热议问题