当前位置: 首页 > 知识库问答 >
问题:

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

章晗日
2023-03-14

我想通过foreach循环显示blade上的一些数据,如下所示:

@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()循环中。

如果你们能分享你们的想法或建议我会很感激的...

提前道谢。

共有1个答案

锺离伟彦
2023-03-14

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

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

一些建议:

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

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

 类似资料:
  • 替代的解决方法可以是将有限的函数转换为对检查的异常更友好的普通旧foreach循环。 但天真的方法是失败的: 更新 回答这个问题的一个技巧以前在Why does stream not implementing iterable 上发布过?作为旁侧答案并不能真正回答问题本身。我认为这不足以将这个问题定性为那个问题的重复,因为他们问的是不同的问题。

  • 问题内容: 假设我们尝试将可能引发检查异常的lambda应用于Java 8流: 这不会编译。 一种解决方法是将检查后的异常嵌套在其中,但是这会使以后的异常处理变得复杂,而且很丑陋: 另一种解决方法可能是转换限制功能,以普通的旧的foreach 循环是比较友好的检查的异常。 但是幼稚的方法失败了: 更新资料 为何在的地方贴了一个回答该问题的技巧。作为副答案本身并不能真正回答该问题。我认为这不足以使这

  • 本文向大家介绍如何在PowerShell foreach并行循环中使用PSCustomObject?,包括了如何在PowerShell foreach并行循环中使用PSCustomObject?的使用技巧和注意事项,需要的朋友参考一下 要在Foreach并行循环内使用PSCustomObject ,我们首先需要考虑如何在循环内使用变量。 因此,让我们看看是否可以在$out变量中存储或更改值。 示例

  • 问题内容: 在循环中使用/ 是否有任何问题?我试图遍历文件数组和每个文件的内容。 这段代码确实有效,但是这可能会出问题吗?我让某人告诉我,您不应该在这样的高阶函数中使用/ ,所以我只是想问一下这是否有问题。 问题答案: 确保代码确实有效,但是我很确定它不会执行您期望的功能。它只会触发多个异步调用,但此后函数会立即返回。 顺序阅读 如果要顺序读取文件, 则不能使用。只需使用现代循环即可,该循环将按预

  • foreach循环遍历列表值并将控制变量(var)依次设置为列表的每个元素 - 语法 (Syntax) Perl编程语言中foreach循环的语法是 - foreach var (list) { ... } 流程图 (Flow Diagram) 例子 (Example) #!/usr/local/bin/perl @list = (2, 20, 30, 40, 50); # foreach lo