Laravel 按标签列表上的平均值排序

Laravel 按标签列表上的平均值排序,laravel,laravel-5.4,Laravel,Laravel 5.4,我在我的网站上有一个标签系统,点击标签会带你到一个与该标签相关联的击球手列表。我想订购这些击球手的平均评分,他们已经给了用户谁审查他们。我该怎么做 我的桌子: 击球手:id,姓名,国家/地区id, 评论:id、评级、评论 标记:id,标记名 击球手标签:击球手id,标签id多对多表 目前,我只是在我的控制器中找到标记$id,并使用一个具有关系的foreach来带回与该标记相关的击球手,例如 @foreach($tag->batsmen as $tags) @endforeach 标签放

我在我的网站上有一个标签系统,点击标签会带你到一个与该标签相关联的击球手列表。我想订购这些击球手的平均评分,他们已经给了用户谁审查他们。我该怎么做

我的桌子:

击球手:id,姓名,国家/地区id, 评论:id、评级、评论 标记:id,标记名 击球手标签:击球手id,标签id多对多表 目前,我只是在我的控制器中找到标记$id,并使用一个具有关系的foreach来带回与该标记相关的击球手,例如

@foreach($tag->batsmen as $tags)

@endforeach

标签放在哪里?把它放在你的foreach中,只需将$batsmans更新为$tags即可
$batsmen = $batsmen->each( function ($item, $key) {
    $item->average_rating = $item->reviews->avg('rating');
});

$sorted = $batsmen->sortBy('average_rating');