Mysql
 sql >> Database >  >> RDS >> Mysql

Laravel - Come generare correttamente slug unici dai titoli degli articoli?

lastInsertId restituisce l'id per connessione, il che significa che le connessioni sql simultanee non interferiranno tra loro.

Tuttavia, lastInsertId() probabilmente non è l'approccio migliore per qualunque cosa tu stia facendo. Vedo che stai già usando modelli Eloquent. Quando crei una nuova voce nella tabella, quei modelli restituiscono l'oggetto corrispondente, quindi puoi ottenere l'identificativo di quell'oggetto esattamente senza alcuna confusione.

$article = Article::create(['title' => 'First post', 'content' => '...']);
echo $article->id;

Questo produrrà sempre l'ID articolo corretto e non devi preoccuparti dei dettagli di implementazione. Non vedo una buona ragione per utilizzare lastInsertId in un framework Web moderno, tranne forse per pochissimi casi limite.

Come regola generale, cerca di evitare di trattare direttamente con il database nella tua applicazione e usa le astrazioni fornite dal framework:renderà il tuo codice molto più gestibile e più semplice da capire.

PS potrebbe non essere importante per te, ma lastInsertId() non funziona con le transazioni.