CakePHP多复选框数组HTML的正确方法

CakePHP多复选框数组HTML的正确方法,php,cakephp,checkbox,Php,Cakephp,Checkbox,CakePHP的复选框表单生成器。。。将以下内容传递到名称中时: <?php echo $this->Form->checkbox('checkList[]', array( 'value'=>1,'id' => 'holiday'.$holidaysDays['id'], 'error' => false, 'placeholder' => false,'div'=>false,'label'=>false,'class' => 'a

CakePHP的复选框表单生成器。。。将以下内容传递到名称中时:

<?php echo $this->Form->checkbox('checkList[]', array( 'value'=>1,'id' => 'holiday'.$holidaysDays['id'], 'error' => false, 'placeholder' => false,'div'=>false,'label'=>false,'class' => 'approveHolidayCheckbox', 'data-off-text'=>'No', 'data-on-text' =>'Yes', 'hiddenField'=>true) ); ?>

产出:

<input type="checkbox" name="data[HolidaysApproval][checkList[]]" value="1" id="holiday238" class="approveHolidayCheckbox" data-off-text="No" data-on-text="Yes">

我在这里读到:解决方案是在字段名中添加一个句号(如下所示),在页面上输出多个复选框。这是“正确”的方法吗

在文档中的任何位置都看不到此特定场景

<?php echo $this->Form->checkbox('checkList.', array( 'value'=>1,'id' => 'holiday'.$holidaysDays['id'], 'error' => false, 'placeholder' => false,'div'=>false,'label'=>false,'class' => 'approveHolidayCheckbox', 'data-off-text'=>'No', 'data-on-text' =>'Yes', 'hiddenField'=>true) ); ?>

是的,这是正确的方法。当CakePHP构建字段名时,它使用PHP的
explode()
方法。因此,
检查表。
基本上做到了以下几点:-

$fieldname = explode('.', 'checklist.');
其结果是:-

Array
(
    [0] => checkList
    [1] => 
)
因此,您将获得名为
数据[Model][checklist][]
的输入

类似地,您可以将其用于
有许多类似于
的字段,例如
$this->Form->field('Model..name')将为您提供名称为
数据[Model][[name]
的输入


查看FormHelper,您应该很容易就能看到它是如何构建字段名的。

如果您循环几个复选框,那么是的,最后的句号将生成类似于
检查表[0]
检查表[1]
等内容。