zwl*_*619 0 php laravel eloquent laravel-5 laravel-5.4
我正在使用Laravel 5.4,如何对两列进行两次排序?
例如:
ArticleController.php
public function index()
{
$articles = Auth::user()->articles->sortByDesc('updated_at')->sortByDesc('status');
return view('index', compact('articles'));
}
Run Code Online (Sandbox Code Playgroud)
我使用了sortByDesc()两次,但结果不符合规定,我该怎么办?
更新:
User.php
public function articles()
{
return $this->hasMany('App\Article');
}
Run Code Online (Sandbox Code Playgroud)
您不应该对集合进行排序,但是应该从数据库中获取排序结果,如下所示:
$articles = Auth::user()->articles()
->orderBy('updated_at', 'DESC')
->orderBy('status','DESC')
->get();
Run Code Online (Sandbox Code Playgroud)
为了进一步说明-在您的代码中,您从数据库中获得了所有结果(以随机顺序),然后尝试对所有结果进行排序。
在我介绍的代码中,您对数据库中的结果进行了排序,因此您可以轻松地对多个列进行排序。
请注意我的代码中的差异-而不是->articles我在最后使用->articles()和添加->get()以获得结果。
| 归档时间: |
|
| 查看次数: |
1594 次 |
| 最近记录: |