【问题标题】:Laravel 5.2 SaveMany creates blank recordLaravel 5.2 SaveMany 创建空白记录
【发布时间】:2016-09-06 14:33:51
【问题描述】:

我在 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 相关模型?

【问题讨论】:

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


    【解决方案1】:

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

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

    我也遇到了同样的问题,也在 Laracast 中提出了同样的问题,但还没有得到任何回应。

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

    【讨论】:

    • 我不会担心这里的批量分配问题 - 一切都会按应有的方式更新。对我来说最关键的问题是如何在不创建新的空白记录的情况下更新多个相关模型。可以通过 DB:insert 完成,但我希望有一个雄辩的方法。
    猜你喜欢
    • 2016-07-05
    • 2016-08-08
    • 1970-01-01
    • 2017-01-13
    • 1970-01-01
    • 2016-11-04
    • 2023-03-06
    • 1970-01-01
    • 2018-10-02
    相关资源
    最近更新 更多