php - rematime - Laravel 4: cómo "ordenar por" usando Eloquent ORM
rematime niños (3)
Así es como yo lo haría.
$posts = $this->post->orderBy(''id'', ''DESC'')->get();
Esta pregunta ya tiene una respuesta aquí:
- Laravel Eloquent: resultados de pedidos de todos () 6 respuestas
Pregunta simple: cómo puedo ordenar por ''id'' descendiendo en Laravel 4.
La parte relevante de mi controlador se ve así:
$posts = $this->post->all()
Según entiendo, usa esta línea:
->orderBy(''id'', ''DESC'');
Pero, ¿cómo encaja eso con mi código anterior?
Si está utilizando el ORM Eloquent, debería considerar el uso de ámbitos. Esto mantendría su lógica en el modelo al que pertenece.
Entonces, en el modelo, tendrías:
public function scopeIdDescending($query)
{
return $query->orderBy(''id'',''DESC'');
}
Y fuera del modelo, tendrías:
$posts = Post::idDescending()->get();
Más información: http://laravel.com/docs/eloquent#query-scopes
Si está utilizando una publicación como modelo (sin inyección de dependencia), también puede hacer:
$posts = Post::orderBy(''id'', ''DESC'')->get();