[Resuelto] Ordenar alfabéticamente consulta por campo Accessor de Laravel

Publicado hace 11 meses por ridier.ayala

En el método create() de un controlador estoy realizando una consulta de todos los registros de la tabla Moves.

$movements = Move::all()->pluck('type_name', 'id');

La consulta me funciona excelente, pero necesito ordenar alfabéticamente esta consulta por el campo type_name, que es un accessor de la entidad. He probado colocar el orderBy('type_name', 'DESC') pero me devuelve error donde sea que lo coloque.

Gracias por su ayuda

Editado
Mejor respuesta Marcada por Ecuador ridier.ayala

italomoralesf hace 11 meses

La clave está en que es un accessor, es decir, la unión de una o varias columnas.. por eso orderBy no funcionará, porque se trata de una "columna compuesta".

La otra clave es que usas pluck y este método genera un array, así que tu solución sería ordenar un array usando el método sort, es decir:

  • Haces tu consulta
  • Recibes un array
  • Ordenas el array

Tomando en cuenta que tienes esto

$movements = Move::all()->pluck('type_name', 'id');

Agrega sort al final

$movements = Move::all()->pluck('type_name', 'id')->sort();