Laravel 4: cómo "ordenar por" usando Eloquent ORM [duplicado]
Pregunta simple: ¿cómo hago un pedido por 'id' descendente en Laravel 4?
La parte relevante de mi controlador se ve así:
$posts = $this->post->all()
Según tengo entendido utilizas esta línea:
->orderBy('id', 'DESC');
Pero, ¿cómo encaja eso con mi código anterior?
Aceptado
Si está utilizando la publicación como modelo (sin inyección de dependencia), también puede hacer:
$posts = Post::orderBy('id', 'DESC')->get();
Si está utilizando Eloquent ORM, 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
Así es como lo haría.
$posts = $this->post->orderBy('id', 'DESC')->get();