【问题标题】:Ordering by avg on a tag list在标签列表上按 avg 排序
【发布时间】:2017-08-24 08:59:56
【问题描述】:

我的网站上有一个标签系统,点击标签将带您进入与该标签相关的击球手列表。我想根据评论过他们的用户给出的平均评分来订购这些击球手。我该怎么做?

我的桌子:

  • 击球手:id、姓名、Country_id、
  • 评论:ID、评分、评论
  • 标签:id,标签名
  • Batsmen_tag:batsmen_id,Tag_id(多对多表)

目前我只是在我的控制器中找到标签($id)并使用具有关系的 foreach 来带回与该标签相关的击球手,例如

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

@endforeach

【问题讨论】:

    标签: laravel laravel-5.4


    【解决方案1】:
    $batsmen = $batsmen->each( function ($item, $key) {
        $item->average_rating = $item->reviews->avg('rating');
    });
    
    $sorted = $batsmen->sortBy('average_rating');
    

    【讨论】:

    • 标签在哪里适合这个?
    • 把它放在你的 foreach 中,然后将 $batsmen 更新为 $tags
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-06-21
    • 2012-06-16
    相关资源
    最近更新 更多