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

Resuelto Josh asked hace 54 años • 3 respuestas

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?

Josh avatar Jan 01 '70 08:01 Josh
Aceptado

Si está utilizando la publicación como modelo (sin inyección de dependencia), también puede hacer:

$posts = Post::orderBy('id', 'DESC')->get();
Chris G avatar Aug 17 '2013 13:08 Chris G

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

Relaxing In Cyprus avatar Dec 11 '2013 12:12 Relaxing In Cyprus

Así es como lo haría.

$posts = $this->post->orderBy('id', 'DESC')->get();
Matthew Camp avatar Jul 09 '2013 16:07 Matthew Camp