Laravel Blade 模板 @foreach 订单

Posted

技术标签:

【中文标题】Laravel Blade 模板 @foreach 订单【英文标题】:Laravel Blade Templating @foreach order 【发布时间】: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')

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

【问题讨论】:

【参考方案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中?

以上是关于Laravel Blade 模板 @foreach 订单的主要内容,如果未能解决你的问题,请参考以下文章

如何使用Laravel Blade模板呈现以下类型的表?

循环遍历 Laravel Blade 模板中的嵌套数组

Laravel -- Blade模板

将 Laravel 路由中的数组传递给 Blade 模板

@include Laravel Blade 模板以使用 Javascript 追加

Laravel's Blade 中的循环变量