Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Laravel - Wie generiert man richtig eindeutige Slugs aus Artikeltiteln?

lastInsertId gibt die ID pro Verbindung zurück, was bedeutet, dass gleichzeitige SQL-Verbindungen sich nicht gegenseitig stören.

Allerdings ist lastInsertId() wahrscheinlich nicht der beste Ansatz für alles, was Sie tun. Wie ich sehe, verwenden Sie bereits Eloquent-Modelle. Wenn Sie einen neuen Eintrag in der Tabelle erstellen, geben diese Modelle das entsprechende Objekt zurück, und dann können Sie genau dieses Objekt ohne Verwirrung ermitteln.

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

Dadurch wird immer die korrekte Artikel-ID ausgegeben und Sie müssen sich nicht um die Implementierungsdetails kümmern. Ich sehe keinen guten Grund, lastInsertId in einem modernen Web-Framework zu verwenden, außer vielleicht in sehr wenigen Grenzfällen.

Versuchen Sie als allgemeine Regel, den direkten Umgang mit Datenbanken in Ihrer Anwendung zu vermeiden, und verwenden Sie die Abstraktionen, die das Framework bietet - es wird Ihren Code viel wartungsfreundlicher und einfacher zu verstehen machen.

P.S. das ist für Sie vielleicht nicht wichtig, aber lastInsertId() funktioniert nicht mit Transaktionen.