如何在Laravel中获取数据库中插入的最后一个ID?

toe95027  于 2023-06-07  发布在  其他
关注(0)|答案(7)|浏览(667)

我试图得到我的表的最后一个id,我想知道我的计数器的下一个数字是什么,并将其显示给用户,我已经尝试了last()方法,但我得到了这个:

>>> $trans = Transferencia::last()
BadMethodCallException with message 'Call to undefined method Illuminate\Database\Query\Builder::last()'

还有别的方法可以知道吗

ar5n3qh5

ar5n3qh51#

在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();
mqkwyuun

mqkwyuun2#

>>> $data = DB::select('SELECT id FROM transferencia ORDER BY id DESC LIMIT 1');

NVM

7lrncoxx

7lrncoxx3#

可以使用LAST_INSERT_ID()函数。试试这个:

SELECT LAST_INSERT_ID() INTO yourTableName;
jgzswidk

jgzswidk4#

保存后,$data->id应该是最后插入的。

return Response::json(array('success' => true, 'last_insert_id' => $data->id), 200);
dl5txlt9

dl5txlt95#

可以使用以下代码:

$data['password']= md5($request->password);
    
   $customer_id= DB::table('customer')
            ->insertGetId($data);
    echo $customer_id;
ilmyapht

ilmyapht6#

正如我对你的理解,你想知道哪个id将出现在下一次插入中。如果表中有AUTO_INCREMENT主键,可以通过查询获取该键的下一个值:

SELECT AUTO_INCREMENT
FROM information_schema.TABLES
WHERE TABLE_SCHEMA = DATABASE()
AND TABLE_NAME = "TABLE_NAME"

但不建议在插入前显示用户ID,因为其他用户的会话可能会更改ID。

nwnhqdif

nwnhqdif7#

这可能是最好的答案:

$trans = Transferencia::orderBy('id', 'desc')->take(1)->first();

使用$trans->id

相关问题