Du bliver stillet over for problemet med at sortere genstande alfanumerisk, eller i datavidenskabelige termer, naturlig sortering.
Der er mange måder at opnå en naturlig sortering med lige MySQL
men du kan også tage resultaterne fra din Laravel-hjælper til array-format og implementere PHP's natsort
funktion i stedet
.
Ud fra de metoder, jeg fandt ovenfor, udledte jeg den bedste måde, der sandsynligvis ville løse dit problem med eksempelkoden:
DB::table('test')->orderBy('LENGTH(title)', 'ASC')
->orderBy('title', 'ASC')
->get();
Jeg er dog ikke sikker på, om hjælperen vil klage over at modtage en MySQL-funktion i stedet for et lige kolonnenavn i orderBy
fungere. Jeg transskriberer kun fra de referencer, jeg brugte i kombination med dit eksempel - jeg kan ikke garantere effektiviteten.