Mat*_*oal 191 sql-order-by laravel eloquent laravel-4
我陷入了一个简单的任务.我只需要订购来自此次通话的结果
$results = Project::all();
Run Code Online (Sandbox Code Playgroud)
Project模特在哪里 我试过这个
$results = Project::all()->orderBy("name");
Run Code Online (Sandbox Code Playgroud)
但它没有用.从表中获取所有数据并获取它们的更好方法是哪种?
Tra*_*s B 346
您实际上可以在查询中执行此操作.
$results = Project::orderBy('name')->get();
Run Code Online (Sandbox Code Playgroud)
这将以正确的顺序返回所有结果.
Yan*_*k Y 104
如果你仍然想使用all(),你仍然可以使用sortBy(在集合级别)而不是orderBy(在查询级别),因为它返回一个对象集合.
升序
$results = Project::all()->sortBy("name");
Run Code Online (Sandbox Code Playgroud)
降序排列
$results = Project::all()->sortByDesc("name");
Run Code Online (Sandbox Code Playgroud)
有关详细信息,请查看有关集合的文档.
https://laravel.com/docs/5.1/collections
ken*_*ard 29
另外,为了支持前面的答案,它可以通过添加或作为第二个参数desc按降序或升序排序asc.
$results = Project::orderBy('created_at', 'desc')->get();
Run Code Online (Sandbox Code Playgroud)
希望这可以帮助.
Hed*_*ary 15
在 Laravel Eloquent 中,您必须创建如下查询,它将从数据库获取所有数据,您的查询不正确:
$results = Project::all()->orderBy("name");
Run Code Online (Sandbox Code Playgroud)
你必须以这种方式使用它:
$results = Project::orderBy('name')->get();
Run Code Online (Sandbox Code Playgroud)
默认情况下,您的数据按升序排列,但您也可以通过以下方式使用orderBy :
//---Ascending Order
$results = Project::orderBy('name', 'asc')->get();
//---Descending Order
$results = Project::orderBy('name', 'desc')->get();
Run Code Online (Sandbox Code Playgroud)
Seb*_*rin 14
Laravel 5.4为查询构建器添加了orderByDesc()方法:
$results = Project::orderByDesc('name')->get();
Run Code Online (Sandbox Code Playgroud)
DsR*_*Raj 10
虽然你需要结果日期作为desc
$results = Project::latest('created_at')->get();
Run Code Online (Sandbox Code Playgroud)
做这个:
$results = Project::orderBy('name')->get();
Run Code Online (Sandbox Code Playgroud)
不要这样做:
$results = Project::all()->sortBy('name');
Run Code Online (Sandbox Code Playgroud)
为什么? 简而言之,第一种方法比第二种方法快。
请注意,您可以这样做:
$results = Project::select('name')->orderBy('name')->get();
Run Code Online (Sandbox Code Playgroud)
这会生成一个查询,如:
"SELECT name FROM proyect ORDER BY 'name' ASC"
Run Code Online (Sandbox Code Playgroud)
在一些应用中,当数据库没有优化,查询比较复杂,需要防止在结束SQL中生成ORDER BY时,可以这样做:
$result = Project::select('name')->get();
$result = $result->sortBy('name');
$result = $result->values()->all();
Run Code Online (Sandbox Code Playgroud)
现在是 php 对结果进行排序。