如何在 Laravel 中按字母顺序对记录进行排序
Posted
技术标签:
【中文标题】如何在 Laravel 中按字母顺序对记录进行排序【英文标题】:How to sort records in alphabetical order in Laravel 【发布时间】:2018-04-25 02:22:25 【问题描述】:如何在laravel中按字母顺序对记录进行排序?
public function index()
$comproducts = Comproduct::paginate(3);
$items = Item::orderBy('name')->all();
return view('computer', compact(['comproducts', 'items']));
这不能正常工作。这表明
调用未定义的方法 Illuminate\Database\Query\Builder::all()
这个错误。我该如何解决这个问题?
【问题讨论】:
使用get()
代替all()
?
谢谢兄弟。现在可以正常使用了
【参考方案1】:
我用get()
代替,你不能用all()
方法修改查询,它也是静态函数
$items = Item::orderBy('name')->get();
【讨论】:
【参考方案2】:这就是你的排序方式,orderBy()
在all()
之后:
$items = Item::all()->sortBy('name');
参考:https://laravel.com/docs/5.5/collections
【讨论】:
我觉得应该是sortBy()
??
orderBy
用于修改查询,sortBy
用于过滤结果,因此sortBy
将起作用。但我认为get()
方法可以在这里使用而不是all
sortBy()
基本上是用来根据字段对集合进行排序的。而且由于问题有all()
,因此我相信sortBy()
会更好。【参考方案3】:
嗨,请根据 eloquent query laravel 找答案
表:用户 列:id、name、class_id
$users = DB::table('users')->whereIn('class_id', [1, 2, 3])->orderBy('name', 'ASC')->paginate(50);
【讨论】:
!! Str_limit($categories->name,100) !!
请帮我在里面添加排序功能。 它是不是在循环中它只是一个声明【参考方案4】:您可以根据要排序的顺序执行以下任何操作
升序排列
$students = Student::whereId($id)->orderBy('name')->get()->all();
降序排列
$students = Student::whereId($id)->orderByDesc('name')->get()->all();
【讨论】:
问题是我得到了一个数组。例如,如果我使用$students->count()
,则会收到以下错误:Call to a member function count() on array
。 :/ 所以应该没有->all()
=> $students = Student::whereId($id)->orderBy('name')->get()
;以上是关于如何在 Laravel 中按字母顺序对记录进行排序的主要内容,如果未能解决你的问题,请参考以下文章
如何在 swift 中按字母顺序对 JSON 字符串进行排序?