如何使用 Laravel Eloquent 获取最后插入的 ID?
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; } }
创建了 user 对象,并使用 **save()** 方法插入到 users 表中。要获取最后插入的 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()** 方法用于将用户详细信息插入 users 表中。user->id 返回最后插入的 id。
输出
以上代码的输出为:
1004
广告
数据结构
网络
关系数据库管理系统
操作系统
Java
iOS
HTML
CSS
Android
Python
C 编程
C++
C#
MongoDB
MySQL
Javascript
PHP