Laravel sync()和attach()不一起工作?
在我的控制器中,我首先为我的其他字段附加如下ID数组:Laravel sync()和attach()不一起工作?,laravel,laravel-5,laravel-5.2,Laravel,Laravel 5,Laravel 5.2,在我的控制器中,我首先为我的其他字段附加如下ID数组: $property->features()->attach($additional_ids); 然后我使用sync(),因为我有复选框: $property->features()->sync($features); 但问题是,当我有这个时,我的attach()就不起作用了。有什么建议我该如何解决这个问题吗?当我删除此sync()时,我的连接正在工作。所以我的想法是,我有功能的复选框,还有一些其他功能的输入字段
$property->features()->attach($additional_ids);
然后我使用sync()
,因为我有复选框:
$property->features()->sync($features);
但问题是,当我有这个时,我的attach()
就不起作用了。有什么建议我该如何解决这个问题吗?当我删除此sync()
时,我的连接正在工作。所以我的想法是,我有功能的复选框,还有一些其他功能的输入字段。我将这个ID存储在透视表中。sync()
将覆盖attach()
所做的所有更改。因此,只需使用sync()
:
使用以下命令:
$property->features()->sync($features, false);
会的
或者你也可以打电话:
$property->features()->syncWithoutDetaching($features)
这也是一样的。它第一次记住了这个$additional\u id,但当我为$features更改某些内容或再次提交表单时,它们会消失?@uzhas
sync()
将删除所有关系,但作为参数发送的数组中的关系除外。在sync()
$property->features()->syncWithoutDetaching($features)