On vous pose le problème du tri alphanumérique des éléments, ou en termes informatiques, du tri naturel.
Il existe de nombreuses façons de réaliser un tri naturel avec MySQL direct
mais vous pouvez également prendre les résultats de votre assistant Laravel au format tableau et implémenter PHP natsort
fonction à la place
.
À partir des méthodes que j'ai trouvées ci-dessus, j'ai dérivé la meilleure façon de résoudre votre problème avec l'exemple de code :
DB::table('test')->orderBy('LENGTH(title)', 'ASC')
->orderBy('title', 'ASC')
->get();
cependant, je ne sais pas si l'assistant se plaindra de recevoir une fonction MySQL au lieu d'un nom de colonne direct dans le orderBy
fonction. Je ne fais que transcrire à partir des références que j'ai utilisées en combinaison avec votre exemple également - je ne peux pas garantir l'efficacité.