我试图得到我的表的最后一个id,我想知道我的计数器的下一个数字是什么,并将其显示给用户,我已经尝试了last()方法,但我得到了这个:
last()
>>> $trans = Transferencia::last() BadMethodCallException with message 'Call to undefined method Illuminate\Database\Query\Builder::last()'
还有别的方法可以知道吗
ar5n3qh51#
在Laravel中获取最后插入的ID的4种方法:使用insertGetId()方法:
insertGetId()
$id = DB::table('users')->insertGetId([ 'name' => 'first' ]);
使用lastInsertId()方法:
lastInsertId()
DB::table('users')->insert([ 'name' => 'TestName' ]); $id = DB::getPdo()->lastInsertId();
使用create()方法:
create()
$data = User::create(['name'=>'first']); $data->id; // Get data id
使用save()方法:
save()
$data = new User; $data->name = 'Test'; $data->save();
mqkwyuun2#
>>> $data = DB::select('SELECT id FROM transferencia ORDER BY id DESC LIMIT 1');
NVM
7lrncoxx3#
可以使用LAST_INSERT_ID()函数。试试这个:
SELECT LAST_INSERT_ID() INTO yourTableName;
jgzswidk4#
保存后,$data->id应该是最后插入的。
return Response::json(array('success' => true, 'last_insert_id' => $data->id), 200);
dl5txlt95#
可以使用以下代码:
$data['password']= md5($request->password); $customer_id= DB::table('customer') ->insertGetId($data); echo $customer_id;
ilmyapht6#
正如我对你的理解,你想知道哪个id将出现在下一次插入中。如果表中有AUTO_INCREMENT主键,可以通过查询获取该键的下一个值:
SELECT AUTO_INCREMENT FROM information_schema.TABLES WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = "TABLE_NAME"
但不建议在插入前显示用户ID,因为其他用户的会话可能会更改ID。
nwnhqdif7#
这可能是最好的答案:
$trans = Transferencia::orderBy('id', 'desc')->take(1)->first();
使用$trans->id。
$trans->id
7条答案
按热度按时间ar5n3qh51#
在Laravel中获取最后插入的ID的4种方法:
使用
insertGetId()
方法:使用
lastInsertId()
方法:使用
create()
方法:使用
save()
方法:mqkwyuun2#
NVM
7lrncoxx3#
可以使用LAST_INSERT_ID()函数。试试这个:
jgzswidk4#
保存后,$data->id应该是最后插入的。
dl5txlt95#
可以使用以下代码:
ilmyapht6#
正如我对你的理解,你想知道哪个id将出现在下一次插入中。如果表中有AUTO_INCREMENT主键,可以通过查询获取该键的下一个值:
但不建议在插入前显示用户ID,因为其他用户的会话可能会更改ID。
nwnhqdif7#
这可能是最好的答案:
使用
$trans->id
。