Laravel 8 Selects 子查询
Eloquent 提供了高级子查询支持,你可以用单条查询语句从相关表中提取信息。举个例子,假设我们有一个目的地表 destinations
和一个到目的地的航班表 flights
。flights
表包含一个 arrival_at
字段,表示航班何时到达目的地。
使用子查询功能提供的 select
和 addSelect
方法,我们可以用单条语句查询全部目的地 destinations
,以及抵达各目的地最后一班飞机的名称:
use App\Models\Destination;
use App\Models\Flight;
return Destination::addSelect(['last_flight' => Flight::select('name')
->whereColumn('destination_id', 'destinations.id')
->orderBy('arrived_at', 'desc')
->limit(1)
])->get();