📜  laravel 模型插入多个 - PHP (1)

📅  最后修改于: 2023-12-03 14:43:48.929000             🧑  作者: Mango

在 Laravel 模型中批量插入多条数据

在 Laravel 中,可以通过模型来处理数据表的操作。在某些情况下,需要向数据库中插入多条记录。本文将介绍如何在 Laravel 模型中批量插入多条数据。

使用 createMany 方法

Laravel 模型中提供了 createMany 方法用于执行批量插入操作。该方法接收一个数组作为参数,数组中每个元素都是要插入的数据。

$users = [
    ['name' => 'Tom', 'email' => 'tom@example.com'],
    ['name' => 'Jerry', 'email' => 'jerry@example.com'],
    ['name' => 'Lucy', 'email' => 'lucy@example.com']
];
User::createMany($users);

createMany 方法会遍历传入的数组并执行相应的插入操作。可以看到,通过该方法可以快速且方便地插入多条数据。

使用 insert 方法

除了 createMany 方法,还可以使用 insert 方法实现批量插入操作。相较于 createMany 方法,insert 方法更加灵活,可以实现更多的操作。

$users = [
    ['name' => 'Tom', 'email' => 'tom@example.com'],
    ['name' => 'Jerry', 'email' => 'jerry@example.com'],
    ['name' => 'Lucy', 'email' => 'lucy@example.com']
];
User::insert($users);

可以看到,使用 insert 方法与 createMany 类似,只需要传入一个数组作为参数即可。

除此之外,insert 方法还可以执行更加复杂的操作。例如,可以使用 insert 方法插入指定的字段。

User::insert([
    ['name' => 'Tom', 'email' => 'tom@example.com'],
    ['name' => 'Jerry', 'email' => 'jerry@example.com'],
    ['name' => 'Lucy']
]);

在上面的例子中,虽然 Lucy 的邮箱字段没有指定,但由于在数据表中该字段设置了默认值,所以插入操作依然能够成功执行。这是 insert 方法的一个非常实用的特性。

总结

在 Laravel 模型中,可以通过 createMany 方法和 insert 方法实现批量插入多条数据的操作。createMany 方法使用较为简单,执行起来也比较快速。而 insert 方法相较于 createMany 更加灵活,可以实现更多的操作,例如指定字段、利用默认值等等。根据具体的业务需求,选择合适的方法对应用的性能会有所提升。