Stack Overflow en español Asked by DAD on December 7, 2021
Tengo una tabla llamada proyectos
la cual tiene las siguientes columnas :
nombre
estado = [activo, inactivo, cerrado]
fecha_created
fecha_updated
c_users
(fk_usuario)lo que quiero conseguir es que me obtenga los proyectos
según el estado
y de forma descendente
fecha_created
, entonces hice esto:
$consulta = DB::table('proyecto')->where('c_users',Auth::user()->id)->orderBy('estado')->orderBy('fecha_created','desc')->get();
la consulta me soluciona el problema de forma orderBy('fecha_created','desc')
pero el problema es con orderBy('estado')
que genera, pero tal cual como lo guarde en el migrate
: activo
, inactivo
, cerrado
.
pero quisiera que me muestre de la siguiente forma:
activos
cerrados
inactivos
como podría generar de la forma que quiero según el estado ?
Si nos basamos en la documentación de MySQL, indica que las mejores formas de hacer un ordenamiento sobre una columna de tipo ENUM
son:
Ejemplo tomado de la documentación oficial1
ORDER BY CAST(col AS CHAR) or ORDER BY CONCAT(col).
Para este caso cómo estás en Laravel deberás usar el método
orderByRaw(......)
Y componer el cast dentro de este método
Referencia
Answered by BetaM on December 7, 2021
Get help from others!
Recent Questions
Recent Answers
© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP