在我的控制器中,我首先为我的附加字段添加这样的ID数组:
$property->features()->attach($additional_ids);
然后我使用sync()
,因为我有复选框:
$property->features()->sync($features);
但问题是,当我有这个时,我的attach()
无效。任何建议如何解决这个问题?当我删除此sync()
时,我的附件正在运行。所以想法是我有功能的复选框,我有一些额外功能的输入字段。我将这个ID存储在数据透视表中。
答案 0 :(得分:3)
sync()
将覆盖attach()
所做的所有更改。所以,只需merge arrays并使用sync()
:
$property->features()->sync(array_merge($features, $additional_ids));
答案 1 :(得分:0)
使用此:
$property->features()->sync($features, false);
或者您也可以致电:
$property->features()->syncWithoutDetaching($features)
会做同样的事情。