sync()和attach()不能一起工作?

时间:2017-01-19 15:21:59

标签: laravel laravel-5 laravel-5.2

在我的控制器中,我首先为我的附加字段添加这样的ID数组:

$property->features()->attach($additional_ids);

然后我使用sync(),因为我有复选框:

 $property->features()->sync($features);

但问题是,当我有这个时,我的attach()无效。任何建议如何解决这个问题?当我删除此sync()时,我的附件正在运行。所以想法是我有功能的复选框,我有一些额外功能的输入字段。我将这个ID存储在数据透视表中。

2 个答案:

答案 0 :(得分:3)

sync()将覆盖attach()所做的所有更改。所以,只需merge arrays并使用sync()

$property->features()->sync(array_merge($features, $additional_ids));

答案 1 :(得分:0)

使用此:

$property->features()->sync($features, false);

哪个sync without detaching

或者您也可以致电:

$property->features()->syncWithoutDetaching($features)

会做同样的事情。