Ti viene posto il problema dell'ordinamento alfanumerico degli elementi o, in termini informatici, ordinamento naturale.
Esistono molti modi per ottenere un ordinamento naturale con MySQL semplice
ma potresti anche prendere i risultati dal tuo helper Laravel in formato array e implementare di PHP natsort
funzione invece
.
Dai metodi che ho trovato sopra, ho derivato il modo migliore che probabilmente risolverebbe il tuo problema con il codice di esempio:
DB::table('test')->orderBy('LENGTH(title)', 'ASC')
->orderBy('title', 'ASC')
->get();
tuttavia non sono sicuro se l'helper si lamenterà di aver ricevuto una funzione MySQL invece di un nome di colonna diretto in orderBy
funzione. Sto solo trascrivendo dai riferimenti che ho usato anche in combinazione con il tuo esempio:non posso garantirne l'efficacia.