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',
),
)
希望有人觉得这有帮助。
我目前正在处理多对多,创建没有任何问题,但使用 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',
),
)
希望有人觉得这有帮助。