私は次のコードを実行しています、
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');
}
ご覧のとおり、組織には多くのプロジェクトがあります。次のエラーが発生する理由がわかりません。
未定義のメソッドIlluminate\Database\Query\Builder :: sync()の呼び出し
両方の関数で多対多の関係があるため、belongsToMany
を使用する必要があるため、次を使用する必要があります。
_public function projects()
{
return $this->belongsToMany('Project');
}
_
の代わりに:
_public function projects()
{
return $this->hasMany('Project');
}
_
sync()
は多対多の関係でのみ機能します