Laravel 5 Eloquent从相关表中获取记录

时间:2016-02-09 10:54:51

标签: php laravel-5

我是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' );

但我想知道如何以雄辩的方式做到这一点。

1 个答案:

答案 0 :(得分:1)

您可以在该日期之前订购并选择第一条记录:

$request = Request::find(1)->bookings()->orderBy('end_date', 'DESC')->first();