Estoy atrapado en una tarea simple. Solo necesito ordenar los resultados de esta llamada
$results = Project::all();
Donde Project
es un modelo. He intentado esto
$results = Project::all()->orderBy("name");
Pero no funcionó. ¿Cuál es la mejor manera de obtener todos los datos de una tabla y ordenarlos?
laravel
laravel-4
eloquent
sql-order-by
MatterGoal
fuente
fuente
get()
vsall()
: stackoverflow.com/questions/34587457/…Todavía podría usar sortBy (en el nivel de colección) en lugar de orderBy (en el nivel de consulta) si aún desea usar all () ya que devuelve una colección de objetos.
Orden ascendente
Orden descendiente
Consulte la documentación sobre Colecciones para obtener más detalles.
https://laravel.com/docs/5.1/collections
fuente
orderBy
en el nivel de consulta?sortBy()
ocurre dentro del Laravel Engine (en PHP), mientras queorderBy()
se realiza en la base de datos. Seguramente la base de datos será más rápida en casi todas las situaciones concebibles, y a medida que aumente su conjunto de datos, también lo hará la disparidad en el rendimiento. Me encantaría escuchar los pensamientos de otras personas sobre esto.Además, solo para reforzar las respuestas anteriores, también se podría ordenar en orden descendente
desc
o ascendenteasc
agregando el segundo parámetro.fuente
Actualización 2017
Laravel 5.4 agregó métodos orderByDesc () al generador de consultas:
fuente
Si bien necesita un resultado para la fecha como desc
fuente
HACER ESTO:
NO HAGAS ESTO:
¿POR QUÉ? Brevemente, el primer enfoque es más rápido que el segundo enfoque.
fuente
Consulte el
sortBy
método para Eloquent: http://laravel.com/docs/eloquentfuente
Tenga en cuenta que puede hacer:
Esto genera una consulta como:
En algunas aplicaciones cuando la base de datos no está optimizada y la consulta es más compleja, y necesita evitar generar un ORDER BY en el SQL final, puede hacer lo siguiente:
Ahora es php quien ordena el resultado.
fuente
Su instrucción requiere una llamada para obtener, porque es traer los registros y ordenar por el catálogo
Ejemplo:
En el ejemplo, los datos se filtran por "dónde" y traen registros superiores a 20 y orden por catálogo por orden de mayor a menor.
fuente