如何在 cakephp 中为 saveMany() 创建输入字段?

How can I create input field for saveMany() in cakephp?

我写了 name[] 用于使用 cakephp saveMany() 方法插入多个名称。

<?= $this->Form->control('name[]',['label'=>'Name']);?>

问题是我得到的数组像

[
  'name' => [
    (int) 0 => 'A',
    (int) 1 => 'B',
  ],
]

收到错误消息Cake\ORM\Table::saveMany(): Argument #1 ($entities) must be of type iterable

如何为多个插入创建名称输入字段?

使用带索引的表单助手的点语法,即 0.name1.name2.name 等,这将导致数据格式类似于

[
    0 => [
        'name' => 'A',
    ],
    1 => [
        'name' => 'B',
    ],
    2 => [
        'name' => 'C',
    ],
    // ...
]

然后使用 Table::newEntities() / Table::patchEntities() 一次 create/patch 多个实体。

另见