Mysql
 sql >> Base de données >  >> RDS >> Mysql

Laravel - Comment générer correctement des slugs uniques à partir des titres d'articles ?

lastInsertId renvoie l'identifiant par connexion, ce qui signifie que les connexions sql simultanées n'interféreront pas les unes avec les autres.

Cependant, lastInsertId() n'est probablement pas la meilleure approche pour tout ce que vous faites. Je vois que vous utilisez déjà des modèles Eloquent. Lors de la création d'une nouvelle entrée dans le tableau, ces modèles renvoient l'objet correspondant, puis vous pouvez obtenir l'identifiant exact de cet objet sans aucune confusion.

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

Cela affichera toujours le bon identifiant d'article et vous n'aurez pas à vous soucier des détails de mise en œuvre. Je ne vois pas de bonne raison d'utiliser lastInsertId dans un framework Web moderne, sauf peut-être pour quelques cas extrêmes.

En règle générale, essayez d'éviter de traiter directement avec la base de données dans votre application et utilisez les abstractions fournies par le framework - cela rendra votre code beaucoup plus maintenable et plus simple à comprendre.

PS cela n'est peut-être pas important pour vous, mais lastInsertId() ne fonctionne pas avec les transactions.