我在这里有一个酒店模型,一个房间模型和一个房价模型,我想通过嵌套关系查询以找到最便宜的房间,所以我必须获取当今时间的所有房间价格,并排序以选择价格最低的每个房间,然后为我的结果选择最低的房间:
在我的模型关系飞船中,我选择了每个房间所有价格之间的最低价格:
// this will bring me the lowest price for the room in the day
public function roomPricingHistorySearch()
{
return $this->hasOne(roomprices::class,'room_id','id')->orderBy('sales_price','ASC');
}
在这里我要选择所有房间之间的最低价
$data = Hotel::with([
'rooms.roomprices' => function ($query) {
//here i want to pick the lowest price room of all.
$query->Where('is_deleted', '1');
}
]);
答案 0 :(得分:1)
如果您按价格对房间进行排序,则获得集合中的第一个。那将是最便宜的一个
代码示例
$product->ticketTypes()->hasActivePrices()->orderBy('price')->first()
这将导致按价格排序的集合,最低的将是第一个。这就是为什么我们要先做()
$data = Hotel::with([
'rooms.roomprices' => function ($query) {
$query->orderBy('sales_prices', 'ASC')->limit(1); // try this
}
]);
``