Laravel 拉威尔5.5。多对多。接收最新实例

Laravel 拉威尔5.5。多对多。接收最新实例,laravel,eloquent,many-to-many,laravel-5.5,Laravel,Eloquent,Many To Many,Laravel 5.5,我有很多这样的模型 类驱动程序 { 公共功能车 { 返回$this->belongsToManyCar::class; } } 班车 { 公共功能驱动程序 { 返回$this->belongToManyDriver::class; } } 我的车在列上激活了_,可以为空 如何检索特定停车场中每个驾驶员的最新激活车辆 像这样的 停车::find2->drivers->lastActivatedCars…?您可以为汽车创建一个范围 // Car.php public function scopeAc

我有很多这样的模型

类驱动程序 { 公共功能车 { 返回$this->belongsToManyCar::class; } } 班车 { 公共功能驱动程序 { 返回$this->belongToManyDriver::class; } } 我的车在列上激活了_,可以为空

如何检索特定停车场中每个驾驶员的最新激活车辆

像这样的


停车::find2->drivers->lastActivatedCars…?

您可以为汽车创建一个范围

// Car.php
public function scopeActivated($query)
{
    return $query->whereNotNull('activated_at')->orderBy('activated_at', 'DESC');
}
然后在Driver.php中:

// Driver.php

public function latestActivatedCar()
{
    return $this->cars()->activated()->first();
}
然后你可以:

$latest = $driver->latestActivatedCar();
$drivers = Parking::find(2)->drivers;
$drivers->load('latestActivatedCar');
或者,您可以创建一个关系,这样您就可以快速加载

// Driver.php

public function latestActivatedCar()
{
    return $this->belongsToMany(Car::class)
                ->whereNotNull('activated_at')
                ->orderBy('activated_at', 'DESC')
                ->limit(1);
}
然后你可以:

$latest = $driver->latestActivatedCar();
$drivers = Parking::find(2)->drivers;
$drivers->load('latestActivatedCar');

我希望这将有助于:

停车::使用['drivers'=>函数$driverQuery{ $driverQuery->with['cars'=>函数$carsQuery{ $carsqery->orderBy'activated','desc' ->limit1; }];
}]->find2;你想要一份他们上次激活的汽车的所有司机的名单吗?或者是所有驾驶员中最后激活的汽车是的,我想要一份所有驾驶员的列表,以及他们上次激活的汽车属性没有激活汽车的驾驶员的情况如何?他们应该被包括在结果中吗?