如何在Cakephp 3中创建按字段集分组的多个复选框

时间:2015-09-04 16:28:33

标签: php cakephp web checkbox cakephp-3.0

我在遵循此文档时遇到问题:

Cakephp3 Cookbook - Form - Creating Select Pickers 我尝试了多个复选框'部分:

$options = [
   'Group 1' => [
      'Value 1' => 'Label 1',
      'Value 2' => 'Label 2'
   ],
   'Group 2' => [
      'Value 3' => 'Label 3'
   ]
];
echo $this->Form->select('field', $options, ['multiple' => 'checkbox']);

但是输出是这样的错误:

Notice (8): Array to string conversion [CORE/src/View/StringTemplate.php, line 238]

它告诉我数组的值应该是一个字符串而不是一个数组,但是无论如何要使它工作吗?请任何人帮我解决这个问题吗?

1 个答案:

答案 0 :(得分:4)

正如@Holt在评论中已经提到的那样,你在那里做的事情根本就不受支持。如果您认为这可能有用,可以在GitHub上 suggest it as an enhancement 结束。

您现在可以做的是手动中途构建,例如

foreach ($options as $group => $groupOptions) {
    $legend = $this->Html->tag('legend', $group);
    $checkboxes = $this->Form->select($group, $groupOptions, [
        'name' => 'field',
        'multiple' => 'checkbox'
    ]);
    echo $this->Html->tag('fieldset', $legend . $checkboxes);
}

或者,为了更好的可重用性,创建一个可以处理此类结构的自定义小部件。

参见 Cookbook > View > Helpers > Form > Adding Custom Widgets