Laravel 多对多同步问题

Laravel many-to-many sync Issue

我目前正在处理多对多,创建没有任何问题,但使用 pivot 更新会导致问题有时

这是我的一些代码

$request->value = array (
  0 => 
  array (
    'consumable_id' => '3',
    'quantity' => '2',
  ),
  1 => 
  array (
    'consumable_id' => '21',
    'quantity' => '1',
  ),
  2 => 
  array (
    'consumable_id' => '20',
    'quantity' => '1',
  ),
  3 => 
  array (
    'consumable_id' => '19',
    'quantity' => '1',
  ),
)  

$mcs->consumables()->sync($request->value);

在这段代码之后,当我检查我的数据库时,它以某种方式复制了 consumable_id。

我在我的更新控制器上创建了一个日志。更新2次

[2021-04-29 10:45:49] local.INFO: MCS ID : 2021042910  
[2021-04-29 10:45:49] local.INFO: Current Data...  
[2021-04-29 10:45:49] local.INFO: Consumbale ID : 21  
[2021-04-29 10:45:49] local.INFO: Quantity : 1  
[2021-04-29 10:45:49] local.INFO: Consumbale ID : 20  
[2021-04-29 10:45:49] local.INFO: Quantity : 1  
[2021-04-29 10:45:49] local.INFO: Consumbale ID : 19  
[2021-04-29 10:45:49] local.INFO: Quantity : 1  
[2021-04-29 10:45:49] local.INFO: Consumbale ID : 3  
[2021-04-29 10:45:49] local.INFO: Quantity : 1  
[2021-04-29 10:45:49] local.INFO: Request :   
[2021-04-29 10:45:49] local.INFO: array (
  0 => 
  array (
    'consumable_id' => '21',
    'quantity' => '2',
  ),
  1 => 
  array (
    'consumable_id' => '20',
    'quantity' => '2',
  ),
  2 => 
  array (
    'consumable_id' => '19',
    'quantity' => '2',
  ),
  3 => 
  array (
    'consumable_id' => '3',
    'quantity' => '4',
  ),
)  
[2021-04-29 10:45:49] local.INFO: Update Sync...  
[2021-04-29 10:45:49] local.INFO: Consumbale ID : 3  
[2021-04-29 10:45:49] local.INFO: Quantity : 4  
[2021-04-29 10:45:49] local.INFO: Consumbale ID : 21  
[2021-04-29 10:45:49] local.INFO: Quantity : 2  
[2021-04-29 10:45:49] local.INFO: Consumbale ID : 20  
[2021-04-29 10:45:49] local.INFO: Quantity : 2  
[2021-04-29 10:45:49] local.INFO: Consumbale ID : 19  
[2021-04-29 10:45:49] local.INFO: Quantity : 2  

[2021-04-29 10:47:16] local.INFO: MCS ID : 2021042910  
[2021-04-29 10:47:16] local.INFO: Current Data...  
[2021-04-29 10:47:16] local.INFO: Consumbale ID : 3  
[2021-04-29 10:47:16] local.INFO: Quantity : 4  
[2021-04-29 10:47:16] local.INFO: Consumbale ID : 21  
[2021-04-29 10:47:16] local.INFO: Quantity : 2  
[2021-04-29 10:47:16] local.INFO: Consumbale ID : 20  
[2021-04-29 10:47:16] local.INFO: Quantity : 2  
[2021-04-29 10:47:16] local.INFO: Consumbale ID : 19  
[2021-04-29 10:47:16] local.INFO: Quantity : 2  
[2021-04-29 10:47:16] local.INFO: Request :   
[2021-04-29 10:47:16] local.INFO: array (
  0 => 
  array (
    'consumable_id' => '3',
    'quantity' => '2',
  ),
  1 => 
  array (
    'consumable_id' => '21',
    'quantity' => '1',
  ),
  2 => 
  array (
    'consumable_id' => '20',
    'quantity' => '1',
  ),
  3 => 
  array (
    'consumable_id' => '19',
    'quantity' => '1',
  ),
)  
[2021-04-29 10:47:16] local.INFO: Update Sync...  
[2021-04-29 10:47:16] local.INFO: Consumbale ID : 19  
[2021-04-29 10:47:16] local.INFO: Quantity : 1  
[2021-04-29 10:47:16] local.INFO: Consumbale ID : 19  
[2021-04-29 10:47:16] local.INFO: Quantity : 1  
[2021-04-29 10:47:16] local.INFO: Consumbale ID : 21  
[2021-04-29 10:47:16] local.INFO: Quantity : 1  
[2021-04-29 10:47:16] local.INFO: Consumbale ID : 20  
[2021-04-29 10:47:16] local.INFO: Quantity : 1  

我是不是漏掉了什么?

我想我解决了我的问题,数组索引键是罪魁祸首,我更改了我的输入字段名称。

name="input[consumable_id][quantity]"

输出

[2021-04-29 12:21:27] local.INFO: array (
  21 => 
  array (
    'quantity' => '1',
  ),
  20 => 
  array (
    'quantity' => '1',
  ),
  19 => 
  array (
    'quantity' => '1',
  ),
  3 => 
  array (
    'quantity' => '2',
  ),
) 

希望有人觉得这有帮助。