Laravel 5.8如何在foreach中按数据透视表值之和排序?
我有以下表格: 部分:Laravel 5.8如何在foreach中按数据透视表值之和排序?,laravel,Laravel,我有以下表格: 部分: id | name 1 | Lock 2 | Light 货架: id | name 1 | 1A 2 | 1B 零件库 id | part_id | shelf_id | stock 1 | 1 | 1 | 5 2 | 1 | 2 | 10 3 | 2 | 1 | 4 关系: 部分型号: public function shelves() { return $thi
id | name
1 | Lock
2 | Light
货架:
id | name
1 | 1A
2 | 1B
零件库
id | part_id | shelf_id | stock
1 | 1 | 1 | 5
2 | 1 | 2 | 10
3 | 2 | 1 | 4
关系:
部分型号:
public function shelves()
{
return $this->belongsToMany( Shelf::class )->withPivot( 'stock' );
}
货架模型中:
public function parts()
{
return $this->belongsToMany(Part::class)->withPivot('stock');
}
我想做的是根据pivot表的总库存订购所有零件
我尝试了以下几点:
$parts = Part::all(); // This is inside controller
@foreach($parts->shelves()->orderBy('pivot_stock', 'desc') as $part)
@foreach($parts->shelves()->orderBy('part_shelf.stock', 'desc') as $part)
我知道我可以通过以下方式获得单个零件的总库存:
$part->shelves()->sum('stock')
我只是不知道如何处理foreach循环中的所有部分
还研究了其他问题,但没有真正起到帮助作用:
- 我想这是最接近我想要的
- 我也有类似的问题。我有三张桌子。玩家(在我的代码“Igrac”中)、锦标赛(在我的代码“Turnir_Piramida”中)和玩家(在我的代码“Nastup_Piramida”中)锦标赛数据透视表。在pivot表中还列出了每个锦标赛中每个球员的得分。我需要总结每个玩家的分数,然后根据分数的总和对表格进行排序
我设法做到这一点与第三个链接你张贴。你可以看到我的解决方案,我也有类似的问题。我有三张桌子。玩家(在我的代码“Igrac”中)、锦标赛(在我的代码“Turnir_Piramida”中)和玩家(在我的代码“Nastup_Piramida”中)锦标赛数据透视表。在pivot表中还列出了每个锦标赛中每个球员的得分。我需要总结每个玩家的分数,然后根据分数的总和对表格进行排序 我设法做到这一点与第三个链接你张贴。你可以看到我的解决方案