Laravel-如何获取将来会创建的最后一行ID

时间:2019-05-05 12:09:26

标签: laravel

我想在数据库中插入一个简单的菜单,并且该菜单还支持缩略图。在将菜单插入数据库之前,我想从MySQL获取最后一个递增的id(未知),以便用唯一的id命名我的缩略图。

如果表中至少有一行,我可以获取最后一个ID。

// last insert id
$last_id = App\Menu::get()->last()->id;

// or // last insert id
$last_id = App\Menu::selectRaw('MAX(id) AS latest_id')->get();

如果没有数据,则以上代码应返回null。我的问题是如何获取MySQL将生成的最后一个自动递增的ID。

2 个答案:

答案 0 :(得分:1)

我认为,请更改您的策略。更好的方法是在获取最后一个插入ID后命名缩略图。如您所知,PHP是一种基于请求的语言,如果您有多个同时要执行此请求的请求,则会遇到冲突ID的严重问题。

答案 1 :(得分:0)

我同意@ajafari。

更好的方法是先创建菜单,然后命名缩略图。

它看起来像这样:

$menu = new Menu(['column_name' => value, etc ...]);
$menu->save();
//Now you have access to the latest id of the menu in $menu->id

希望有帮助!