Skip to content

Como Ordenar Resultados de Consultas Eloquent no Laravel com orderBy()

Postado em por na categoria "Laravel"

No desenvolvimento de aplicações com Laravel, frequentemente nos deparamos com a necessidade de ordenar os resultados das nossas consultas ao banco de dados. O Eloquent, ORM padrão do Laravel, oferece uma variedade de métodos para facilitar essa tarefa, sendo o orderBy() um dos mais utilizados. Neste artigo, vamos explorar como usar o orderBy() e seus variantes para ordenar resultados de consultas de maneira eficaz.

Os Fundamentos do orderBy()

O método orderBy() permite ordenar os resultados de uma consulta com base em uma coluna específica. Você pode especificar a direção da ordenação como ascendente (asc) ou descendente (desc). Por exemplo:

$users = User::orderBy('name', 'desc')->get();

Este código ordena os usuários pelo nome em ordem descendente.

Utilizando orderByDesc()

Para simplificar a ordenação descendente, o Laravel oferece o método orderByDesc(), que é um atalho para orderBy('coluna', 'desc'):

$users = User::orderByDesc('name')->get();

Ordenação por Múltiplas Colunas

Às vezes, é necessário ordenar os resultados por mais de uma coluna. Isso pode ser facilmente alcançado encadeando chamadas ao método orderBy():

$users = User::orderBy('name', 'desc')->orderBy('email', 'asc')->get();

Neste exemplo, os usuários são primeiro ordenados pelo nome em ordem descendente e, em seguida, pelo email em ordem ascendente.

Ordenação Avançada com orderByRaw()

Para necessidades mais complexas, o orderByRaw() permite utilizar expressões SQL brutas para ordenação:

$users = User::orderByRaw('updated_at - created_at DESC')->get();

Revertendo a Ordenação com reorder()

Se você precisar remover a ordenação aplicada a uma consulta ou definir uma nova ordenação, o método reorder() é a solução:

$orderedUsers = User::orderBy('name');
$unorderedUsers = $orderedUsers->reorder()->get();

Ou, para aplicar uma nova ordenação diretamente:

$reorderedUsers = $orderedUsers->reorder('email', 'desc')->get();

Com estas dicas e exemplos, você está agora equipado para ordenar os resultados das suas consultas Eloquent no Laravel de maneira eficiente e personalizada. Experimente estas técnicas em seus projetos para melhorar a organização e a apresentação dos dados.

End of article