📅  最后修改于: 2023-12-03 15:32:33.304000             🧑  作者: Mango
在 Laravel 中使用 Eloquent 时,我们有时候需要批量插入多个数据,而不是一个个地插入。这种情况下,可以使用 Eloquent 的 insert
方法来实现批量插入。
insert
方法可以接收一个数组,数组的每个元素都是需要插入到表中的一行数据。例如,下面的代码可以将三个用户插入到 users
表中:
DB::table('users')->insert([
['name' => 'John Doe', 'email' => 'johndoe@example.com'],
['name' => 'Jane Doe', 'email' => 'janedoe@example.com'],
['name' => 'Bob Smith', 'email' => 'bobsmith@example.com']
]);
在插入数据时,可以设置插入多个相同数据。例如,下面的代码可以将三个相同的用户插入到 users
表中:
DB::table('users')->insert([
['name' => 'John Doe', 'email' => 'johndoe@example.com'],
['name' => 'John Doe', 'email' => 'johndoe@example.com'],
['name' => 'John Doe', 'email' => 'johndoe@example.com']
]);
insert
方法返回插入的行数。
除了 insert
方法,我们还可以使用 Eloquent 的 create
方法来批量插入多条数据。不过这种方法需要我们提前设置好 Eloquent 模型的 $fillable
属性,以保证能够正确地填充数据。
例如,假设我们有一个 User
模型,该模型有 name
和 email
两个属性:
class User extends Model
{
protected $fillable = ['name', 'email'];
}
我们可以使用以下代码来批量插入用户数据:
User::create([
['name' => 'John Doe', 'email' => 'johndoe@example.com'],
['name' => 'Jane Doe', 'email' => 'janedoe@example.com'],
['name' => 'Bob Smith', 'email' => 'bobsmith@example.com']
]);
需要注意的是,Eloquent 的 create
方法会自动为每个插入的模型创建相应的记录。因此,我们无需担心插入重复的数据。
在本文中,我们介绍了使用 Eloquent 批量插入多条数据的两种方法:使用 insert
方法和使用 Eloquent 的 create
方法。这两种方法都能够有效地减少插入数据的时间和工作量,让开发者更加高效地管理数据。