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

Laravel - Hvordan genererer man rigtigt unikke snegle fra artikeltitler?

lastInsertId returnerer id's per-forbindelse, hvilket betyder, at samtidige sql-forbindelser ikke vil forstyrre hinanden.

LastInsertId() er dog sandsynligvis ikke den bedste tilgang til, hvad end du laver. Jeg kan se, at du allerede bruger Eloquent-modeller. Når du opretter en ny post i tabellen, returnerer disse modeller det tilsvarende objekt, og så kan du få id for præcis det objekt uden nogen forvirring.

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

Dette vil altid udskrive det korrekte artikel-id, og du behøver ikke bekymre dig om implementeringsdetaljerne. Jeg kan ikke se en god grund til at bruge lastInsertId i et moderne web-framework, undtagen måske for nogle få kanttilfælde.

Som en generel regel skal du prøve at undgå at beskæftige dig direkte med databasen i din applikation og bruge de abstraktioner, som rammen giver - det vil gøre din kode meget mere vedligeholdelsesvenlig og enklere at forstå.

P.S. det er måske ikke vigtigt for dig, men lastInsertId() virker ikke med transaktioner.




  1. java.lang.UnsupportedOperationException:org.hibernate.dialect.Oracle10gDialect understøtter ikke resultatsæt via lagrede procedurer

  2. MySQL Joins:at vælge hvilken tabel der skal tilsluttes fra baseret på kildetabeldata

  3. Tæl forekomst af felt, mens du er gruppe med 2

  4. php imap - få brødtekst og lav almindelig tekst