附加或同步一对多关系laravel

时间:2018-02-13 02:23:50

标签: php laravel one-to-many relation

问题模型:

$this->hasMany('App\Option');

选项模型:

$this->belongsTo('App\Question');

问题控制器

$question = new Question;
$question->question = 'Question';
$question->options()->attach(['option1', 'option2', 'option3', 'option4']);

我正在尝试附加选项数据,但它显示错误“调用未定义的方法Illuminate \ Database \ Query \ Builder :: attach()”

如何以正确的方式附加和同步?

2 个答案:

答案 0 :(得分:0)

一对多的关系没有方法attach()attach()方法仅适用于关系ManytoMany。您可以使用id某个模型。

答案 1 :(得分:0)

这样做:

$question = new Question;
$question->question = 'Question';
$question->save(); // Model should be saved before attaching children
$question->options()->saveMany([
    new Option(['name' => 'option1'),
    new Option(['name' => 'option2'),
    new Option(['name' => 'option3')
]);