如何在 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 字符串进行排序?

如何在数据库表中按字母顺序对列进行排序? [关闭]

如何在pyspark中按字母顺序对嵌套结构的列进行排序?

如何在C中按顺序对带有数字和字母的文件名进行排序?

如何在 iOS 中按字母顺序对 MediaQuery 的 ArtistQuery 数组进行排序

NSPredicate 在 CoreData 中按字母顺序获取记录