'How to get last inserted id in Laravel?
Here is my code
$users = DB::table('users')->insert(array(
'email_id' => $email_id,
'name' => $name,
));
$lastInsertedID = $users->lastInsertId();
return $lastInsertedID;
I want to get last inserted id for particular record. I have tried using Eloquent ORM. but it didn't work.
Any help would be grateful.
Thank You.
Solution 1:[1]
Use insertGetId()
$id = DB::table('users')-> insertGetId(array(
'email_id' => $email_id,
'name' => $name,
));
Solution 2:[2]
Follow the code to get last inserted id by using ->insert()
$lastInsertedID = DB::table('users')
->insert( array(
'email_id' => $email_id,
'name' => $name
)
)
->lastInsertId();
Solution 3:[3]
Here are the following methods to get last inserted id
Eloquent
Method 1
$user = new User();
$user->name = "Test";
$user->save();
dd($user->id);
Method 2
$user = User::create(['name' => 'Test']);
dd($user->id);
Query Builder
Method 3
In this method Primary Key must me id. If its other then id for example some_id then this method will throw exception.
$id = DB::table('users')->insertGetId(['name' => 'Test']);
dd($id);
Method 4
This method is usefull if you are using DB Facade and have Custom Primary Key like some_id.
DB::table('users')->insert(['name' => 'Test']);
dd(DB::getPdo()->lastInsertId());
Solution 4:[4]
Do you mean you inserted record id? You can get the following way:
//UserController.php
$user = new User;
$user->name = $request->name;
$user->email = $request->email;
if($user->save()){
echo "User's record id is ".$user->id; *//$user->id is your lastest record id*
}
Solution 5:[5]
$id = DB::getPdo()->lastInsertId();
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source |
|---|---|
| Solution 1 | Maik Lowrey |
| Solution 2 | Maik Lowrey |
| Solution 3 | |
| Solution 4 | yekyawaung |
| Solution 5 | Mohammad Usman |
