多对多关系 - 保存数据

时间:2018-02-01 08:02:59

标签: php laravel

我在FilmPerformer型号之间建立了关系。

电影模型:

public function Performers()
{
    return $this->belongsToMany('App\Performer');
}

表演者模特:

public function Films()
{
  return $this->belongsToMany('App\Films');
}

如果我要手动添加数据,我已经创建了表film_performer并且关系正常工作。

我在发送表单后将数据保存到film_performer时遇到问题。

进入控制器我附上它。

$film->performers()->attach($request->performers);

我没有任何错误。我使用dd($request)检查数组执行者,一切正常

1 个答案:

答案 0 :(得分:1)

$request->performers更改为$request->performers->pluck('id')

$film->performers()->attach($request->performers)

attach方法需要一组id。

https://laravel.com/docs/5.5/eloquent-relationships#updating-many-to-many-relationships

  

为方便起见,附加和分离也接受ID数组作为输入:

     

$ user = App \ User :: find(1);

     

$ user-> roles() - > detach([1,2,3]);

     

$用户>角色() - >附加([       1 => ['expires'=> $过期]       2 => ['expires'=> $过期]   ]);