如何使用 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

