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表中还列出了每个锦标赛中每个球员的得分。我需要总结每个玩家的分数,然后根据分数的总和对表格进行排序

      我设法做到这一点与第三个链接你张贴。你可以看到我的解决方案