Cakephp 3 无法标记多个复选框已选中

Cakephp 3 Unable to mark multiple checkboxes selected

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

编辑视图文件

 <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 = ['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 )

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

该选项不再称为 selected,而是 val。看起来像 the Cookbook is a little out of date on that one, it's however shown correctly in the API docs.

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