【发布时间】:2018-03-14 18:05:01
【问题描述】:
我有以下关系:
- 一个场地有很多优惠
- 一个报价有多个订单
我有以下 Eloquent 模型来表示这一点:
class Venue {
public function orders()
{
return $this->hasManyThrough(Order::class, Offer::class);
}
}
我想使用 Laravel 的 Eloquent 模型来确定具有 location_id = 5 的场所的订单总数。
我设法做到这一点的唯一方法如下:
$venues = Venue::where('location_id', 5)->with('orders')->get();
$numberOfOrders = 0;
foreach($venues as $venue) {
$numberOfOrders += $venue->orders->count();
}
dump($numberOfOrders); // Output a single number (e.g. 512)
但是,这显然不是很有效,因为我使用 PHP 而不是 SQL 来计算计数。
如何单独使用 Eloquent 模型来做到这一点。
【问题讨论】:
标签: php laravel laravel-5 eloquent