简单的问题-我如何在Laravel 4中按“id”降序排序。
控制器的相关部分是这样的:
$posts = $this->post->all()
据我所知你是这么说的
->orderBy('id', 'DESC');
但这如何与我上面的代码相匹配呢?
简单的问题-我如何在Laravel 4中按“id”降序排序。
控制器的相关部分是这样的:
$posts = $this->post->all()
据我所知你是这么说的
->orderBy('id', 'DESC');
但这如何与我上面的代码相匹配呢?
当前回答
如果您正在使用Eloquent ORM,您应该考虑使用作用域。这将使您的逻辑保持在模型中它所属的位置。
所以,在模型中你会有:
public function scopeIdDescending($query)
{
return $query->orderBy('id','DESC');
}
在模型之外,你会有:
$posts = Post::idDescending()->get();
更多信息:http://laravel.com/docs/eloquent#query-scopes
其他回答
这就是我要做的。
$posts = $this->post->orderBy('id', 'DESC')->get();
如果你使用post作为模型(没有依赖注入),你还可以这样做:
$posts = Post::orderBy('id', 'DESC')->get();
如果您正在使用Eloquent ORM,您应该考虑使用作用域。这将使您的逻辑保持在模型中它所属的位置。
所以,在模型中你会有:
public function scopeIdDescending($query)
{
return $query->orderBy('id','DESC');
}
在模型之外,你会有:
$posts = Post::idDescending()->get();
更多信息:http://laravel.com/docs/eloquent#query-scopes