Cakephp - 复选框名称

时间:2012-02-15 05:53:08

标签: php cakephp

目前,我已成功创建了复选框。 我设置的数组如下:

$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']
    )); ?>

然而,似乎这不起作用。有任何想法吗?

1 个答案:

答案 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>