Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Laravel - Jak poprawnie generować unikalne slugi z tytułów artykułów?

lastInsertId zwraca id na połączenie, co oznacza, że ​​współbieżne połączenia sql nie będą ze sobą kolidować.

Jednak lastInsertId() prawdopodobnie nie jest najlepszym podejściem do tego, co robisz. Widzę, że już używasz modeli Eloquent. Podczas tworzenia nowego wpisu w tabeli te modele zwracają odpowiedni obiekt, a następnie możesz uzyskać id dokładnie tego obiektu bez żadnych pomyłek.

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

To zawsze wygeneruje poprawny identyfikator artykułu i nie musisz się martwić o szczegóły implementacji. Nie widzę dobrego powodu, aby używać lastInsertId w nowoczesnym frameworku internetowym, może z wyjątkiem bardzo nielicznych przypadków brzegowych.

Zasadniczo staraj się unikać bezpośredniego zajmowania się bazą danych w swojej aplikacji i korzystaj z abstrakcji, które zapewnia framework - dzięki temu Twój kod będzie znacznie łatwiejszy w utrzymaniu i łatwiejszy do zrozumienia.

PS to może nie być dla ciebie ważne, ale lastInsertId() nie działa z transakcjami.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Połączenie obrotowe Laravel 5.5, aby uzyskać wartości przestawne z głównym wynikiem MySQL

  2. Jak podłączyć Javę do MySQL?

  3. Dlaczego to wstrzyknięcie SQL powiodło się, mimo że instrukcja SQL generuje błąd składni?

  4. go-mysql:wtyczka uwierzytelniająca nie jest obsługiwana podczas łączenia się z kontenera aplikacji go do kontenera mysql

  5. Skąd mam wiedzieć, czy tabela mysql używa myISAM lub InnoDB Engine?