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->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 订单的主要内容,如果未能解决你的问题,请参考以下文章