【问题标题】:Laravel Blade Templating @foreach orderLaravel Blade 模板 @foreach 订单
【发布时间】:2016-04-14 12:29:13
【问题描述】:

有没有办法在 laravel Blade 中对 @foreach 循环进行排序?

@foreach ($specialist as $key)
  <option value="{{$key->specialist_id}}"> {{$key->description}}</option>
@endforeach

我想通过$key-&gt;description订购,

我知道我可以在我的控制器中使用 order by,

->orderBy('description')

但是控制器返回其他值并且这些值也必须排序,所以我需要在刀片中排序。

【问题讨论】:

    标签: php laravel foreach blade


    【解决方案1】:

    假设你的 $specialist 变量是一个 Eloquent 集合,你可以这样做:

    @foreach ($specialist->sortBy('description') as $oneSpecialist)
      <option value="{{ $oneSpecialist->specialist_id }}"> {{ $oneSpecialist->description }}</option>
    @endforeach
    

    此外,您可以直接从模板中调用您的 Eloquent 模型:

    @foreach (Specialist::all()->sortBy('description') as $oneSpecialist)
      <option value="{{ $oneSpecialist->specialist_id }}"> {{ $oneSpecialist->description }}</option>
    @endforeach
    

    请注意,您在 foreach() 循环中使用了具有误导性的 $key 变量名称。您的 $key 实际上是一个数组项,而不是一个键。我假设您在某处看到了 foreach ($array as $key => $value) 语法,然后删除了 $value?

    【讨论】:

    • 如何按数据透视表中的属性排序
    【解决方案2】:

    我建议使用 laravel collection。更具体地说,sortBy()。您可以在视图或从中传递数据的控制器中使用其中任何一个。如果模型正在传递数据,请务必使用collect() 函数,然后再继续使用列出的任何其他函数。

    希望这会有所帮助!

    【讨论】:

    • 如何在视图刀片中编写 sortBy?就像 $sorted = $collection->sortBy('price');还是需要写在javasctipt中?
    猜你喜欢
    • 2015-07-10
    • 2017-06-18
    • 2016-12-18
    • 2016-04-27
    • 2017-09-10
    • 2019-06-26
    • 2013-07-21
    • 2014-06-20
    • 1970-01-01
    相关资源
    最近更新 更多