如何在Eloquent ORM laravel中获取最后一个插入ID

Dee*_*ran 18 php laravel eloquent

我正在使用"Laravel中的Eloquent ORM"执行数据库操作.我只想在数据库中获取最后一个插入ID(不是最大id).

我在laravel Eloquent ORM中搜索获取最后一个插入ID,我得到以下链接(Laravel,使用Eloquent获取最后一个插入ID),这是指从后面的函数" $data->save()" 获取最后一个插入ID .

但我需要得到

" Model::create($data)";

我的查询:

GeneralSettingModel::create($GeneralData);

User::create($loginuserdata);
Run Code Online (Sandbox Code Playgroud)

如何检索最后插入的ID?

Edg*_*zco 42

就像文档说的那样:插入,更新,删除

"你也可以使用create方法来保存新模式在一行.插入的模型实例将从该方法返回给你.但是,在这样做之前,你需要指定无论是在可填写或防护属性模型,因为所有Eloquent模型都可以防止质量分配.

保存或创建一个使用自动递增的ID的新模式后,你可以通过访问对象的id属性检索ID: "

$insertedId = $user->id;
Run Code Online (Sandbox Code Playgroud)

所以在你的样本中:

$user = User::create($loginuserdata);
$insertedId = $user->id;
Run Code Online (Sandbox Code Playgroud)

然后在table2上它将会是

$input['table2_id'] = $insertedId;
table2::create($input);
Run Code Online (Sandbox Code Playgroud)

  • 值得注意的是,该文档具有误导性,因为显示的第一个方法是` - > save();`并且它没有,IMO,足以解释`save()`返回布尔值而**仅*插入,更新和delete返回实例.特别是因为在说"After**saving**or creating"之后 (3认同)

Maj*_*bib 21

****对于Laravel****

$user = new User();

$user->name = 'John';

$user->save();

//Getting Last inserted id

$insertedId = $user->id;
Run Code Online (Sandbox Code Playgroud)


Pan*_*yar 6

您可以将数据包装在 insertGetId() 方法中,如下所示

\n\n
$id = DB::table('table')->insertGetId( $data );\n
Run Code Online (Sandbox Code Playgroud)\n\n

在这种情况下,数组 $data 看起来像这样

\n\n
$data = [ 'field' => 'data' , 'field' => 'data' ];\n
Run Code Online (Sandbox Code Playgroud)\n\n

如果您\xe2\x80\x99正在使用数据库fa\xc3\xa7ade,您可以将lastInsertID()方法附加到您的查询中。

\n\n
$lastInsertedID = DB::table('table')->insert( $data )->lastInsertId();\n
Run Code Online (Sandbox Code Playgroud)\n