我正在运行以下代码,
- if( $organisation->save() ) {
- if(isset($members)) {
- $organisation->users()->sync($members);
- }
- if(isset($teams)) {
- $organisation->teams()->sync($teams);
- }
- if(isset($teams)) {
- $organisation->clients()->sync($clients);
- }
- if(isset($projects)) {
- $organisation->projects()->sync($projects);
- }
- $organisation->load('users');
- $organisation->load('teams');
- $organisation->load('clients');
- $organisation->load('projects');
- return Response::make($organisation,200);
- }
当我尝试同步$projects时,我收到以下错误,
数组看起来像这样,
[0] => 6所以一个非常非常简单的数组.我在模型中的关系看起来像这样,
组织
- public function projects()
- {
- return $this->hasMany('Project');
- }
项目
- public function organisations()
- {
- return $this->belongsToMany('Organisation','organisation_id');
- }
正如您所看到的,我组织可以拥有许多项目.我看不出有什么原因会导致以下错误,
Call to undefined method Illuminate\Database\Query\Builder::sync()
由于两个函数中的多对多关系都需要使用belongsToMany,因此您应该使用:
- public function projects()
- {
- return $this->belongsToMany('Project');
- }
代替:
- public function projects()
- {
- return $this->hasMany('Project');
- }
sync()仅适用于多对多关系