我为包含模块的服务创建了一个模型,每个模块都有价格。多个模块为该服务创造了价格。
- Service #1
-- Module 1 ($20)
-- Module 2 ($40)
使用belongsToMany
class Services extends Model
{
public function modules()
{
return $this->belongsToMany('App\Services\Modules');
...
每个模块都链接到一个价格
class Modules extends Model
{
public function price()
{
return $this->hasOne('App\Services\Pricing', 'product')->where('type', 'module');
...
和一个将服务链接到模块的service_module
表。问题是我应该创建什么样的关系才能为每个服务 ->sum()
模块价格,因为我创建了一个带有循环和刻录的丑陋补丁15每个请求更多查询
$prices = [];
foreach ($services->modules as $modules )
$prices[] = $modules ->price['month'];
$price = number_format(collect($prices)->sum(), 2, '.', '');