如何使用 Laravel Eloquent 获取最后插入的 ID?

laravelphpserver side programming更新于 2025/4/29 23:22:17

Eloquent 是一个新的对象关系映射器 (ORM),用于与数据库交互。在 Eloquent 中,每个表都有一个映射模型,负责处理该表上的所有操作。

Laravel 中的模型代表数据库中的表。例如,如果您有表"customers",则模型名称为"customer",表"users"为"user",表"employees"为"employee"。表名必须是复数,模型名称必须是单数。这是一种惯例,但这并不妨碍您使用您选择的表名和模型名称的命名约定。

使用 Laravel Eloquent 模型,您可以使用 insertGetId() 方法获取插入的 ID。 insertGetId() 的语法为 −

Model::insertGetId([field=>value, field2=>value…])

insertGetId() 方法返回表中最后插入的 ID。

示例 1

<?php namespace App\Http\Controllers; use Illuminate\Http\Request; use App\Models\User; class UserController extends Controller { public function index() { $Userid = User::insertGetId([ 'name' => 'Janvi Singh', 'email' => 'janvi@gmail.com', 'password' => 'janvi123' ]); echo $Userid; } }

输出

上述代码的输出是 −

1001

示例 2

使用 DB Facade,您还可以使用 insertGetId() 来获取最后插入的 ID,如下例所示 -

<?php namespace App\Http\Controllers; use Illuminate\Http\Request; use Illuminate\Support\Facades\DB; class UserController extends Controller { public function index() { $Userid = DB::table('users')->insertGetId([ 'name' => 'Akansha Singh', 'email' => 'akansha@gmail.com', 'password' => 'akansha123' ]); echo $Userid; } }

输出

上述代码的输出是

1002

示例 3

从表中获取最后插入的 ID 的另一种方法如下所示 -

<?php namespace App\Http\Controllers; use Illuminate\Http\Request; use App\Models\User; class UserController extends Controller { public function index() { $user = new User(); $user->name = 'Tomas'; $user->email = 'tomas@gmail.com'; $user->password='tomas123'; $user->save(); echo $lastinsertedId = $user->id; } }

创建用户对象并使用 save() 方法将其插入到用户表中。要获取最后插入的 ID,您可以使用 $user->id;

输出

上述代码的输出是 −

1003

示例 4

<?php namespace App\Http\Controllers; use Illuminate\Http\Request; use App\Models\User; class UserController extends Controller{ public function index() { $user = User::create(['name'=>'Seema Singh', 'email'=>'seema@gmail.com', 'password'=>'seema123']); echo $lastUserId = $user->id; } }

在上面, create() 方法用于在用户表中插入用户详细信息。 user->id 返回最后插入的 id。

输出

上述代码的输出是 −

1004

相关文章