我是laravel的新手,我使用的是Laravel 5.2我希望在特定请求的预订列中记录最大结束日期。我的表就像:
request
-----------
id | name
----------
1 | My request
bookings
-----------
id | request_id | start_date | end_date
--------------------------------------------
1 | 1 | 2016-03-01 | 2016-03-05
2 | 1 | 2016-03-10 | 2016-03-20
3 | 1 | 2016-03-25 | 2016-03-28
Request Model
------------------
public function bookings()
{
return $this->hasMany( 'App\Booking' );
}
我希望请求数据具有最大结束日期(对于记录上方的示例,将预订Id:3)。请帮忙。
我尝试过以下方法:
$request = \DB::table( 'requests' )
->join( 'bookings', 'requests.id', '=', 'bookings.request_id' )
->where( 'requests.id', 1 )
->max( 'bookings.end_date' );
但我想知道如何以雄辩的方式做到这一点。
答案 0 :(得分:1)
您可以在该日期之前订购并选择第一条记录:
$request = Request::find(1)->bookings()->orderBy('end_date', 'DESC')->first();