Home / Snippets / How to Get Last Inserted Eloquent ID in Laravel
How to Get Last Inserted Eloquent ID in Laravel cover

How to Get Last Inserted Eloquent ID in Laravel

1.6K

3 years ago

0 comments

After saving data to the database, oftentimes you need to get the ID right away to perform some action and even processing. To get the ID of the last inserted record, you can right away access the data that's returned by the method used for inserting.

Method 1: Getting Last Inserted Record ID


For this example, let's imagine you are creating a new "Post" model, and to get the ID of the last inserted post you can call the "id" from the model instance like in the example below. 
<?php

$post = Post::create(['title' => 'hello world']);

$post->id; // you can right away access the ID

// if you prefer to use the save() method then it will be like below
$post = new Post();

$post->title = 'hello world';

$post->save();

$id = $post->id; // this will retrieve teh id

Method 2: Using insertGetId to get Latest ID


Another way to get the ID is by using the "insertGetId()" method and this method will create a new record and right away return the "id" to the variable.
<?php

$id = \DB::table('posts')->insertGetId(['title' => 'hello world 2']);
The code above will create a new post and then return the post ID to the user.

Method 3: Using lastInsertId to get Latest ID


One other way is to use "lastInsertId()" method after chaining the "getPdo()" of the DB facade and the code example will be as follows.
<?php

$id = DB::getPdo()->lastInsertId();

Perform Action with Last Inserted ID


Now that you have the ID you can use it to redirect the user to any of the respective pages or even return it to the client if you are sending it as a JSON response.
<?php

$post = Post::create(['title' => 'hello world']);

return redirect()->route('posts.show', ['id' => $post->id]);
For the JSON response, you can pass it like below.
<?php

$post = Post::create(['title' => 'hello world']);

return response()
    ->json(['success' => true, 'last_insert_id' => $data->id], 200);
notion avatar

Alaz

Week-end developer currently experimenting with web, mobile, and all things programming.

Topics:

Frontend

Resource

Average

Average

Support Us

If you like our tutorial, support us by being our Patreon or buy us some coffee ☕️

Welcome to PostSrc V3

PostSrc Dark Logo

You have to login to favorite this