【问题标题】:Laravel many-to-many sync IssueLaravel 多对多同步问题
【发布时间】:2021-07-22 09:49:42
【问题描述】:

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

这是我的一些代码

$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  

我错过了什么吗?

【问题讨论】:

    标签: database laravel many-to-many pivot-table relationship


    【解决方案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',
      ),
    ) 
    

    希望有人觉得这有帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-02-14
      • 2021-01-13
      • 2021-12-21
      • 1970-01-01
      • 2020-11-10
      • 1970-01-01
      • 2014-11-11
      • 2016-09-23
      相关资源
      最近更新 更多