Laravel Eloquent : insertGetId - insérer et récupérer l'ID d'un enregistrement en une ligne
Laravel offre la possibilité d’insérer un enregistrement et de récupérer son ID en une ligne. Cet article vous explique comment faire.

Parfois il peut être utile de récupérer l’ID d’un enregistrement que l’on vient d’effectuer. Il est possible de réaliser cette action en utilisant la méthode insertGetId.
Exemples
En utilisant Eloquent :
$query = Post::insertGetId([ 'user_id' => auth()->user()->id, 'title' => 'Laravel est génial', 'slug' => 'laravel-est-genial', 'description' => "Pas besoin d'en dire plus...",]);
En utilisant le Query Builder :
$query = DB::table('posts')->insertGetId([ 'user_id' => auth()->user()->id, 'title' => 'Laravel est génial', 'slug' => 'laravel-est-genial', 'description' => "Pas besoin d'en dire plus...",]);
Résultat : l’insertion va être effectuée et la variable $query correspondra à l’ID du nouvel enregistrement.
Utilisation avec PostgreSQL
Avec PostgreSQL la méthode insertGetId attendra que la colonne en auto-incrément soit nommée id. Si vous souhaitez l’utiliser avec une autre colonne il faudra passer en second paramètre de la méthode le nom de cette colonne.
Exemple :
$query = Post::insertGetId([ 'user_id' => auth()->user()->id, 'title' => 'Laravel est génial', 'slug' => 'laravel-est-genial', 'description' => "Pas besoin d'en dire plus...",], 'unique_id');