Cakephp为多个复选框子组设置默认值

使用复选框的“子组”时如何设置默认选中的复选框?您可以通过为’options’属性设置嵌套数组来实现所谓的“子组”.我想默认选中所有复选框.

echo $this->Form->input('fooBar', [
    'type' => 'select',
    'multiple' => 'checkbox',
    'label' => false,
    'class' => 'inlineBlock',
    'options' => [
        'Foo' => [0 => 'Yes', 1 => 'No' ]
        'Bar' => [0 => 'One', 1 => 'Two', 2 => 'Three']
]]);

我试过设置

‘selected’ => [0 => [0, 1], 0 => [0, 1, 2]]

‘checked’ => true

但没有运气.
如果我手动检查它们而不是提交表单,Cakephp会生成URL参数,就像没有“子组”一样,例如:

‘options’ => [0 => ‘Yes’, 1 => ‘No’ ]

这与我设置的行为相同

‘default’ => [1, 2, 3]

是否可以设置单个复选框“子组”的选定复选框?

最佳答案 您需要使用如下所示的’val’属性:

                    <?= $this->Form->control("themes._ids", [
                        "label" => false,
                        'multiple' => 'checkbox',
                        "val" => [1, 2, 3]
                    ]) ?>

参考API Doc

点赞