Du ställs inför problemet med att sortera objekt alfanumeriskt, eller i datavetenskapliga termer, naturlig sortering.
Det finns många sätt att uppnå en naturlig sortering med rak MySQL
men du kan också ta resultaten från din Laravel-hjälpare till array-format och implementera PHP:s natsort
fungera istället
.
Från metoderna jag hittade ovan, härledde jag det bästa sättet som sannolikt skulle lösa ditt problem med exempelkoden:
DB::table('test')->orderBy('LENGTH(title)', 'ASC')
->orderBy('title', 'ASC')
->get();
men jag är inte säker på om hjälparen kommer att klaga på att få en MySQL-funktion istället för ett rakt kolumnnamn i orderBy
fungera. Jag transkriberar bara från referenserna jag använde i kombination med ditt exempel - jag kan inte garantera effektiviteten.