Cakephp 3无法选中多个复选框

时间:2015-03-11 16:02:58

标签: php cakephp cakephp-3.0

我的编辑视图文件有一组复选框。我已设法从数据库中检索所选的复选框值,并希望在视图文件中将它们标记为已选中。

修改视图文件

 <div class="col-md-12">
    <?= $this->Form->label('category','Pick Categories');?>
    <?= $this->Form->select('category', $options,['multiple'=>'checkbox', 'required'=>'false', 'label'=>'Category','class'=>'col-md-12','selected'=>$catSel]); ?>
</div>

$ options是

$options = ['A'=>'Val1',
            'B'=>'Val2',
            'C'=>'Val3',
            'D'=>'Val4',
            'E'=>'Val5'];

$ catSel已在我的控制器中设置并返回正确的值。我检查了print_r(),如下所示:

Array ( [0] => 1 [1] => 3 )

我也试过直接输入选定的值

<?= $this->Form->select('shop_category', $options,['multiple'=>'checkbox', 'required'=>'false', 'label'=>'Shop Category','class'=>'col-md-12','selected'=>[1,3]]); ?>

我也试过发送$ catSel作为

Array ( [0] => A [1] => C )

这些都不起作用。不知道为什么。除了将'selected'设置为选择数组之外,我无法在任何地方找到任何解决方案。任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:6)

该选项不再被称为selected,而是valthe Cookbook看起来有点过时,但the API docs中显示正确。

另请注意,必须使用您要选择的选项的实际键,例如,在您的情况下,您必须使用示例中的后一个并传递字符串AC