Laravel 4: cómo "ordenar por" usando Eloquent ORM

Simple pregunta - cómo puedo ordenar por 'id' descendente en Laravel 4.

La parte relevante de mi controlador se ve así:

$posts = $this->post->all()

Según tengo entendido utiliza esta línea:

->orderBy('id', 'DESC');

Pero, ¿cómo encaja eso con mi código anterior?

Solución

Si estás usando post como modelo (sin inyección de dependencia), también puedes hacerlo:

$posts = Post::orderBy('id', 'DESC')->get();
Comentarios (9)

Si estás usando el ORM de Eloquent deberías considerar el uso de scopes. Esto mantendría su lógica en el modelo donde pertenece.

Así, en el modelo que tendría:

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

Comentarios (4)

Así es como yo lo haría.

$posts = $this->post->orderBy('id', 'DESC')->get();
Comentarios (0)