Laravel 5.2 SaveMany创建空白记录

时间:2016-05-11 09:29:35

标签: eloquent many-to-many laravel-5.2 savemany

我在Laravel 5.2中有ManyToMany关系:

用户模型:

public function Lessons(){
    return $this->belongsToMany('App\Lesson')->withPivot('created_by', 'number_of_lessons','id');
}

但是,我想在数据透视表中保存多个课程,如下所示:

$output = [];
$output[] = $this->RidingCourses()->wherePivot('created_by',1)->first()->pivot->number_of_lessons = 200;
$output[] = $this->RidingCourses()->wherePivot('created_by',2)->first()->pivot->number_of_lessons = 200;
$this->RidingCourses()->saveMany([$output]);

数据透视记录正在更新,但在数据透视表中也创建了两个空白记录。所以我的问题是,如何正确保存多个ManyToMany相关模型?

1 个答案:

答案 0 :(得分:0)

检查'created_by','number_of_lessons','id'是否可以在您的模型中填写? 您是否尝试更新现有记录?

如果这些列可填写且仍然面临相同的问题,则使用save或create方法代替saveMany。

我也遇到了同样的问题,并在Laracast也提出了同样的问题,但还没有得到任何答复。

我认为这是Laravel 5.2中的一个错误。