批量插入而不是foreach循环:Laravel 5.2.31

时间:2016-05-21 07:59:36

标签: php laravel laravel-5 laravel-5.1 laravel-5.2

我使用以下代码逐个插入记录。

foreach($data["SportsTypes"] as $SportsTypeID) {
    $userSportsType = new \App\Models\User\UserSportsTypeModel();
    $userSportsType->UserID       = 1;
    $userSportsType->SportsTypeID = $SportsTypeID;
    $userSportsType->save();
}

我可以进行批量插入,以便在迭代中摆脱保存过程吗?

2 个答案:

答案 0 :(得分:0)

您必须使用 foreach 插入多个模型或使用查询构建器

有些人要求,但Tayler Otwell建议在这些情况下使用查询生成器Reference

查询构建器

DB::table('users')->insert([
    ['email' => 'taylor@example.com', 'votes' => 0],
    ['email' => 'dayle@example.com', 'votes' => 0]
]);

Documentation for insert method

答案 1 :(得分:0)

使用Eloquent或查询构建器在Laravel中进行批量插入非常容易。

您可以使用以下方法。

$data = array(
    ['UserID' => '1', 'SportsTypeID' => $SportsTypeID],
    ['UserID' => '2', 'SportsTypeID' => $SportsTypeID]
);

User::insert($data); // Eloquent
DB::table('users')->insert($data); // Query Builder

希望这会有所帮助。