📅  最后修改于: 2023-12-03 14:43:46.704000             🧑  作者: Mango
在 Laravel 中,我们可以使用 Eloquent ORM 来操作数据库,使用 $model->save()
方法来插入数据。但是在插入数据后,我们可能需要获取插入数据的 ID,以便后续操作或者展示给用户。
本文将介绍如何在 Laravel 中插入数据后获取插入的 ID。
在使用 $model->save()
方法插入数据后,我们可以使用 $model->id
属性来获取插入数据的 ID。例如:
$user = new User;
$user->name = 'John Doe';
$user->email = 'john@example.com';
$user->save();
$id = $user->id;
这种方法非常简单,但是需要注意的是,只有在插入数据后调用 $model->id
,才能获取到正确的 ID。如果在执行 $model->save()
前调用 $model->id
,它将返回 null
。
另一个可以获取插入数据 ID 的方法是使用 $model->getKey()
。这个方法可以在插入数据之前调用,同时在插入数据之后也可以调用。例如:
$user = new User;
$user->name = 'John Doe';
$user->email = 'john@example.com';
$idBeforeSave = $user->getKey(); // null
$user->save();
$idAfterSave = $user->getKey(); // 1
其中,$idBeforeSave
的值为 null
,因为数据还没有插入到数据库。而 $idAfterSave
的值为插入数据的 ID。
除了使用 Eloquent 的方式插入数据之外,我们还可以使用 Query Builder 的 insertGetId
方法插入数据,并返回插入的 ID。例如:
$id = DB::table('users')->insertGetId(
['name' => 'John Doe', 'email' => 'john@example.com']
);
这种方式与 Eloquent 的方式略有不同,不需要先创建一个 Model 对象,而是直接使用 Query Builder,同时也不需要调用 $model->save()
方法。
本文介绍了三种在 Laravel 中插入数据后获取插入的 ID 的方法:
$model->id
属性,但需要注意只有在插入数据后调用 $model->id
,才能获取到正确的 ID。$model->getKey()
方法,这个方法可以在插入数据之前调用,同时在插入数据之后也可以调用。insertGetId
方法,这种方式略有不同,不需要先创建一个 Model 对象,而是直接使用 Query Builder。可根据具体情况选择合适的方法。