Reputation: 2482
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.
Upvotes: 9
Views: 46825
Reputation: 4808
Here are the following methods to get last inserted id
$user = new User();
$user->name = "Test";
$user->save();
dd($user->id);
$user = User::create(['name' => 'Test']);
dd($user->id);
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);
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());
Upvotes: 3
Reputation: 8558
Follow the code to get last inserted id by using ->insert()
$lastInsertedID = DB::table('users')
->insert( array(
'email_id' => $email_id,
'name' => $name
)
)
->lastInsertId();
Upvotes: 3
Reputation: 23010
Use insertGetId()
$id = DB::table('users')-> insertGetId(array(
'email_id' => $email_id,
'name' => $name,
));
Upvotes: 30
Reputation: 211
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*
}
Upvotes: 0