Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Laravel sync()和attach()不一起工作?_Laravel_Laravel 5_Laravel 5.2 - Fatal编程技术网

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

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()时,我的连接正在工作。所以我的想法是,我有功能的复选框,还有一些其他功能的输入字段

在我的控制器中,我首先为我的其他字段附加如下ID数组:

$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)