Mic*_*ger 1 php foreach laravel eloquent
有没有更好的方法来获得Laravel Eloquent最低价格的物品?每个产品都有多个ticketTypes,每个ticketType可以有多个价格.
public function includeLowestPrice(Product $product)
{
$lowestPriceTicket = null;
foreach ($product->ticketTypes()->hasActivePrices()->get() as $type) {
foreach ($type->prices()->get() as $ticketPrice) {
if (!$lowestPriceTicket || $ticketPrice->value < $lowestPriceTicket->value) {
$lowestPriceTicket = $ticketPrice;
}
}
}
return $lowestPriceTicket ? $this->item($lowestPriceTicket, new TicketPriceTransformer()) : null;
}
Run Code Online (Sandbox Code Playgroud)
$product->ticketTypes()->hasActivePrices()->orderBy('price')??->first()
Run Code Online (Sandbox Code Playgroud)
将获得价格最低的产品,假设price是字段的名称,hasActivePrices是返回Eloquent Query Builder的查询范围.
first()将返回第一个模型而不是集合,orderBy()并将对查询进行排序
| 归档时间: |
|
| 查看次数: |
1099 次 |
| 最近记录: |