我正在开发一个项目,用户可以在这个项目中处理多个项目,项目可以让多个用户使用它。 在这个项目中,我使用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');
}