laravel sync和detach不能用于删除所有实例

时间:2015-05-21 11:59:32

标签: php laravel sync detach

我正在开发一个项目,用户可以在这个项目中处理多个项目,项目可以让多个用户使用它。 在这个项目中,我使用sync方法在数据透视表中添加和删除实例。 每当我使用带有空数组的同步或分离以删除具有特定项目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 = $this->project->find($request->project_id);
            $this->project->fill($request->input())->save();

            return redirect('project');
        }

0 个答案:

没有答案