繁体   English   中英

Laravel 8:如何使用 foreach() 循环列出刀片上的数据

[英]Laravel 8: How to list data on blade with foreach() loop

我想通过这样的 foreach 循环在刀片上显示一些数据:

@foreach($topAnswered as $topAns)
    <tr>
        <td style="text-align:right;">
            <h3 class="h5 mb-0"><a href="{{ route('show.question', $topAns->slug) }}" class="text-uppercase">{{ $topAns->title }}</a></h3>
        </td>
        <td style="text-align:right;">
            <div>{{ $topAns->answers->count() }}</div>
        </td>
        <td style="text-align:right;">
            <div>{{ $topAns->likes->count() }}</div>
        </td>
    </tr>
@endforeach

但我需要根据$topAns->likes->count()降序检索这些数据。 那么如何将此条件添加到foreach()循环中。

如果你能分享你们的任何想法或建议,我将不胜感激......

提前致谢。

您可以对 collections 使用方法 sortBy,在此处了解更多信息

@foreach($topAnswered->sortBy(function($answer, $key){return $answer->likes->count();}) as $topAns)
...
@endforeach

一些建议:

  • 我认为你应该在 controller 上进行排序,所以在刀片文件中它已经排序
  • 在您的 controller 上,您应该急切加载喜欢,这样它就不会为每个喜欢关系进行新查询, ->with('likes')
  • 您还可以加载->withCount('likes')并按likes_count排序

在此处了解有关关系和急切加载的更多信息

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM