Laravel Blade 模板化@foreach 顺序
Laravel Blade Templating @foreach order
有什么方法可以对 laravel blade 中的 @foreach
循环进行排序吗?
@foreach ($specialist as $key)
<option value="{{$key->specialist_id}}"> {{$key->description}}</option>
@endforeach
我想通过 $key->description
、
订购
我知道我可以在我的控制器中使用 order by,
->orderBy('description')
但是控制器 returns 其他值和那些值也必须排序,所以我需要在 blade.
中排序
我建议使用 laravel collection. More specifically, the sortBy()
。您可以在您的视图或您从中传递数据的控制器中使用其中任何一个。如果数据由模型传递,请务必先使用 collect()
函数,然后再继续使用列出的任何其他函数。
希望对您有所帮助!
假设您的 $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?
有什么方法可以对 laravel blade 中的 @foreach
循环进行排序吗?
@foreach ($specialist as $key)
<option value="{{$key->specialist_id}}"> {{$key->description}}</option>
@endforeach
我想通过 $key->description
、
我知道我可以在我的控制器中使用 order by,
->orderBy('description')
但是控制器 returns 其他值和那些值也必须排序,所以我需要在 blade.
中排序我建议使用 laravel collection. More specifically, the sortBy()
。您可以在您的视图或您从中传递数据的控制器中使用其中任何一个。如果数据由模型传递,请务必先使用 collect()
函数,然后再继续使用列出的任何其他函数。
希望对您有所帮助!
假设您的 $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?