从laravel获取数据,与视图有更深的关系并显示



$suppliers = Supplier::with(
[
'purcheses' => function ($query) {
$query->with(
[
'payments' => function ($query) {
$query->sum('amount');
}
]
)->get();
}
]
)->latest()->get();

我有供应商与购买表有多关系的表与付款有多对多关系,付款属于购买,如何获得属于该供应商的每次采购的付款总额?

我想这个包可能对你有帮助,

这个包的自述说明了这个包支持的各种类型的关系:

  • HasMany

  • ManyToMany

  • MorphMany

  • MorphToMany

  • MorphedByMany

  • BelongsTo

下面是一个复杂关系的HasMany关系的自述示例:

/*
Country
-> has many
User
-> has many
Post
-> has many
Comment
*/

class Country extends Model
{
use StaudenmeirEloquentHasManyDeepHasRelationships;

public function comments()
{
return $this->hasManyDeep('AppComment', ['AppUser', 'AppPost']);
}
}

// Access country comments
$country->comments();

在上面的例子中,包使用Eloquent约定键,并且包允许您为本地键和外键指定自定义键。

您可以尝试flatMap和loadSum:

$suppliers = Supplier::with('purchases')
->get();
// Load the payments total for each purchase.
$suppliers
->flatMap
->purchases
->loadSum('payments', 'amount');
return $suppliers;

最新更新