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

Publicado hace 9 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 9 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();