目前,我已成功创建了复选框。 我设置的数组如下:
$emailName = $this->User->find('list', array(
'fields' => array('User.username', 'User.email')
));
输出如下:
array
'admin' => string 'asd@asd.asd' (length=11)
'test' => string 'test@test.test' (length=14)
'Floo' => string 'XXXX@gmail.com' (length=16)
我正在尝试使复选框显示用户名而不是view.ctp中的用户电子邮件。
我尝试在view.ctp中使用以下代码
<?php echo $this->Form->input('Address_list.['.$emailName['username'].']', array(
'type' => 'select',
'multiple' => 'checkbox',
'options' => $emailName['email']
)); ?>
然而,似乎这不起作用。有任何想法吗?
答案 0 :(得分:3)
您没有正确格式化复选框列表的表单字段。尝试将其更改为:
echo $this->Form->input('Address_list', array(
'multiple' => 'checkbox',
'options' => $emailName,
));
但是,这将根据用户选择的电子邮件选择返回用户名的值。它创建了这样的形式:
<label for="Address_list">Address List</label>
<input type="hidden" id="Address_list" value="" name="data[Address_list]"/>
<div class="checkbox"><input type="checkbox" id="AddressListAdmin" value="admin"
name="data[Address_list][]"/><label for="AddressListAdmin">asd@example.com</label></div>
<div class="checkbox"><input type="checkbox" id="AddressListTest" value="test"
name="data[Address_list][]"/><label for="AddressListTest">test@example.com</label></div>
<div class="checkbox"><input type="checkbox" id="AddressListFloo" value="Floo"
name="data[Address_list][]"/><label for="AddressListFloo">XXX@example.com</label></div>