【问题标题】:Attach or sync in one to many relation laravel在一对多关系中附加或同步 laravel
【发布时间】:2018-07-23 08:01:51
【问题描述】:

问题模型:

$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()”

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

【问题讨论】:

    标签: php laravel one-to-many relation


    【解决方案1】:

    这样做:

    $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')
    ]);
    

    【讨论】:

      【解决方案2】:

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

      【讨论】:

      • 这不是这个问题的答案。
      猜你喜欢
      • 1970-01-01
      • 2015-01-28
      • 2015-01-29
      • 2015-02-14
      • 2016-06-20
      • 2016-03-14
      • 1970-01-01
      • 2020-11-10
      • 2018-06-15
      相关资源
      最近更新 更多