[英]How to get last id inserted on a database in Laravel?
我正在嘗試獲取我的表的最后一個 ID,我希望它知道我的計數器的下一個數字是多少並將其顯示給用戶,我已經嘗試使用last()
方法但是我得到了這個:
>>> $trans = Transferencia::last()
BadMethodCallException with message 'Call to undefined method Illuminate\Database\Query\Builder::last()'
還有其他方法可以知道嗎?
在 Laravel 中獲取最后插入的 Id 的 4 種方法:
使用insertGetId()
方法:
$id = DB::table('users')->insertGetId(
[ 'name' => 'first' ]
);
使用lastInsertId()
方法:
DB::table('users')->insert([
'name' => 'TestName'
]);
$id = DB::getPdo()->lastInsertId();
使用create()
方法:
$data = User::create(['name'=>'first']);
$data->id; // Get data id
使用save()
方法:
$data = new User;
$data->name = 'Test';
$data->save();
dd($data->id);
您可以使用LAST_INSERT_ID()函數。 試試這個:
SELECT LAST_INSERT_ID() INTO yourTableName;
保存后,$data->id 應該是最后插入的。
return Response::json(array('success' => true, 'last_insert_id' => $data->id), 200);
>>> $data = DB::select('SELECT id FROM transferencia ORDER BY id DESC LIMIT 1');
非易失存儲器
您可以使用以下代碼:
$data['password']= md5($request->password);
$customer_id= DB::table('customer')
->insertGetId($data);
echo $customer_id;
正如我理解的那樣,您想知道下一次插入時將使用哪個 id。 如果表中有AUTO_INCREMENT主鍵,您可以使用查詢獲取該鍵的下一個值:
SELECT AUTO_INCREMENT
FROM information_schema.TABLES
WHERE TABLE_SCHEMA = DATABASE()
AND TABLE_NAME = "TABLE_NAME"
但是不建議在插入之前向用戶顯示他的 ID,因為它可以從其他用戶的會話中更改。
這可能是最佳答案:
$trans = Transferencia::orderBy('id', 'desc')->take(1)->first();
並使用$trans->id
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.