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.

Laravel Eloquent : insertGetId - insérer et récupérer l'ID d'un enregistrement en une ligne

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');

Contenus associés

Laravel Livewire : l'importance de sécuriser l'ID de son model

Livewire est un framework pour Laravel qui permet de créer des interfaces dynamiques depuis le backend. Attention tout de même à la sécurité.

Laravel Livewire : l'importance de sécuriser l'ID de son model
Hébergez vos polices Google sans effort avec Laravel

Pensez à héberger vos polices Google sur votre serveur : vous gagnerez en vitesse de chargement et vous serez en règle avec le RGPD. Je vous donne ma méthode dans cet article.

Hébergez vos polices Google sans effort avec Laravel
Laravel : créer facilement un sitemap

Je vous présente un paquet qui vous permet de générer très facilement un sitemap pour votre site sous Laravel.

Laravel : créer facilement un sitemap
Forcer la redirection HTTP vers HTTPS sur Laravel 8, 9 et plus

Votre hébergeur ne propose pas le HTTPS par défaut, vous ne pouvez pas modifier le htaccess… Comment faire ? J’ai LA réponse à vos questions.

Forcer la redirection HTTP vers HTTPS sur Laravel 8, 9 et plus
Fonctionnement du blog : pourquoi Laravel et WordPress

J’explique dans cet article pourquoi j’ai choisi Laravel et WordPress comme stack de départ pour le fonctionnement de ce blog.

Fonctionnement du blog : pourquoi Laravel et WordPress
Laravel Artisan : make - le guide complet

Le framework Laravel dispose d'un ensemble complet de commandes, la plus utilisée étant certainement make. Connaissez-vous toutes les commandes disponibles ?

Laravel Artisan : make - le guide complet