Laravel,不使用foreach插入多行

Raj*_*mar 0 mysql insert save laravel eloquent

$input['activities'] = array(3,2,5);

foreach($input['activities'] as $activity_id){

    $user_activities = new User_activities;

    $user_activities->activity_id = $activity_id;

    $user_activities->user_id = Auth::id();

    $user_activities->save();

}
Run Code Online (Sandbox Code Playgroud)

是否可以使用单行脚本为Laravel中的每个语句执行上述操作?而不是进行保存foreach,是否可以在一行中完成?

Lim*_*nte 5

只需将数组数组传递给Eloquent::insert():

$data = [];

foreach($input['activities'] as $activity_id) {
    $data[] = [
        'activity_id' => $activity_id,
        'user_id' => Auth::id()
    ];
}

Coder::insert($data);
Run Code Online (Sandbox Code Playgroud)

  • Insert不会添加created_at和updated_at时间.这需要手动添加.:) (3认同)