我正在尝试删除Studio
模型hasMany
和Member
模型hasMany
的对象模型Game
,并将行为设置为{{1在删除模型后,我们的想法是将hasMany
和Member
模型Game
属性更改为默认的studio_id
对象,换句话说,更改其附加的{{}当他们Studio
被删除的Studio
时,转到另一个。
这是尝试的代码
Studio
Game&成员模型有方法
belongTo
所有列都被正确命名,我能够检索与工作室相关的所有游戏,与游戏相同的事情,以及相反的方式,但是当我在执行验证后尝试执行代码时,我得到了错误
$studio = Studio::find(Input::get('id'));
$games = $studio->games;
$members = $studio->members;
$merged_collection = $games->merge($members);
$merged_collection->each(function($item){
global $studio;
$item->studio()->detach($studio);
$defStudio = Studio::find('5');
$item->studio()->associate($defStudio);
$item->save();
});
$studio->delete();
我认为也许我尝试使用方法public function studio(){
return $this->belongsTo('Studio');
}
的项目不是对象实例,但正如我所知,每当我使用Call to undefined method Illuminate\Database\Query\Builder::detach()
表示时,我正在检索对象实例在集合中。
我很感激任何指导或帮助。 谢谢。