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

更新於: 2022-08-30

16K+ 瀏覽量

開啟您的 職業生涯

透過完成課程獲得認證

開始學習
廣告

© . All rights reserved.