Laravel:调用未定义的方法Illuminate \ Database \ Query \ Builder :: detach()

时间:2014-07-05 14:27:02

标签: laravel eloquent

我正在尝试删除Studio模型hasManyMember模型hasMany的对象模型Game,并将行为设置为{{1在删除模型后,我们的想法是将hasManyMember模型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() 表示时,我正在检索对象实例在集合中。

我很感激任何指导或帮助。 谢谢。

0 个答案:

没有答案