Php laravel sync和detach无法删除所有实例

Php laravel sync和detach无法删除所有实例,php,laravel,sync,detach,Php,Laravel,Sync,Detach,我正在做一个项目,用户可以处理多个项目,项目可以有多个用户处理。 在这个项目中,我使用sync方法在pivot表中添加和删除实例。 每当我使用“与空数组同步”或“分离”来删除具有特定项目id的所有实例时,它都不起作用,并且实例保持存在 虽然使用参数同步可以将数据添加到数据库中,但我发现删除不起作用是非常奇怪的。 与仅对一个实例进行同步相同,当数据库中有更多实例时,它将删除其他实例并保留该实例 我的职能: public function update(CreateProjectRequest $r

我正在做一个项目,用户可以处理多个项目,项目可以有多个用户处理。 在这个项目中,我使用sync方法在pivot表中添加和删除实例。 每当我使用“与空数组同步”或“分离”来删除具有特定项目id的所有实例时,它都不起作用,并且实例保持存在

虽然使用参数同步可以将数据添加到数据库中,但我发现删除不起作用是非常奇怪的。 与仅对一个实例进行同步相同,当数据库中有更多实例时,它将删除其他实例并保留该实例

我的职能:

public function update(CreateProjectRequest $request)
        {
            if($request->get('contribute'))
            {
                foreach($request->get('contribute') as $k => $contribute)
                {
                    if($contribute == 1)
                    {
                        $this->project = $this->project->find($request->project_id);
                        $keys[] = $k;
                    }
                }
            }
            if(isset($keys))
            {
                $this->project->users()->sync($keys);
            }
            else
            {
$this->project->users->detach


如果我使用$this->project->users->syncarray,则相同;在引用的地方,我发现问题是,$this->project是空的,因为我在foreach中声明了它。
            }

            $this->project = $this->project->find($request->project_id);
            $this->project->fill($request->input())->save();

            return redirect('project');
        }