我在执行此文档时遇到问题:
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]
这就像告诉我数组的值应该是一个字符串而不是一个数组,但是有没有办法让它工作呢?有人能帮我解决这个问题吗?
最佳答案
正如@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