Jste postaveni před problém řazení položek alfanumericky, nebo z hlediska informatiky přirozené třídění.
Existuje mnoho způsobů, jak dosáhnout přirozeného řazení pomocí přímého MySQL
ale můžete také převzít výsledky z vašeho pomocníka Laravel do formátu pole a implementovat PHP natsort
místo toho
.
Z metod, které jsem našel výše, jsem odvodil nejlepší způsob, který by pravděpodobně vyřešil váš problém s ukázkovým kódem:
DB::table('test')->orderBy('LENGTH(title)', 'ASC')
->orderBy('title', 'ASC')
->get();
nejsem si však jistý, zda si pomocník bude stěžovat na přijetí funkce MySQL namísto přímého názvu sloupce do orderBy
funkce. Přepisuji pouze z odkazů, které jsem použil v kombinaci s vaším příkladem - nemohu zaručit účinnost.