While developing a web app, you might need to get the id of last inserted data to assign to another model. There are various ways to achieve it depending on whether you are using model class or DB facade.
1. Eloquent Create Method
In this technique, we use
create() method to add entry in db. We create new entry in the db and right after we grab of the model. Here is a snippet of this process.
$user = User::create(['name' => 'John Doe']); $user_id = $user->id();
Above, we created a user and stored it in a variable. Using that variable we assign the id to another variable. Hence, we get the id.
2. Eloquent Save Method
This process is very much similar to the previous method. We use
save() method to get id in this method.
$user = new User(); $user->name = 'John Doe'; $user->save(); $user_id = $user->id();
3. DB Facade
By using DB Facade, we can get ID at the time of insertion of data. For this we can call inserGetId() method which inserts data in the table and also returns id of the row.
$itemsID = DB::table('items')->insertGetId( [ 'name' => 'MSI GP63' ] ); dd($itemID); // will return item id
To get last inserted id, we can also use PDO object. At first, insert the data in the table and then call lastinsertedId() method on PDO object.
$item= DB::table('items')->insert( [ 'name' => 'MSI GP63' ] ); $itemId = DB::getPdo()->lastInsertId();. dd($itemId); // will return item id
These are some of the methods that you can use to get id of inserted data. I hope this helps you in your laravel development journey.