2012-02-15 73 views
0

目前,我已成功創建複選框。 我所設置的陣列是如下:Cakephp - 複選框名稱

$emailName = $this->User->find('list', array(
    'fields' => array('User.username', 'User.email') 
    )); 

輸出如下:

array 
    'admin' => string '[email protected]' (length=11) 
    'test' => string '[email protected]' (length=14) 
    'Floo' => string '[email protected]' (length=16) 

我試圖使複選框示出的用戶名,而不是考慮到用戶的電子郵件。 CTP。

我在view.ctp

<?php echo $this->Form->input('Address_list.['.$emailName['username'].']', array(
    'type' => 'select', 
    'multiple' => 'checkbox', 
    'options' => $emailName['email'] 
    )); ?> 

使用下面的代碼試圖然而,似乎這是行不通的。有任何想法嗎?

+2

首先,你沒有跟隨蛋糕轉換。我假設「Address_list」是一個製作字段。要做到這一點,只需從字段名稱中刪除'['和']',這應該可以解決您的問題。 – 2012-02-15 05:59:34

+0

不,嘗試刪除它,但不起作用。 – user1192304 2012-02-15 06:44:36

回答

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">[email protected]</label></div> 
<div class="checkbox"><input type="checkbox" id="AddressListTest" value="test" 
    name="data[Address_list][]"/><label for="AddressListTest">[email protected]</label></div> 
<div class="checkbox"><input type="checkbox" id="AddressListFloo" value="Floo" 
    name="data[Address_list][]"/><label for="AddressListFloo">[email protected]</label></div> 
+0

是的。這工作..爲了實現我想要的,我重新編碼查找方法。所以電子郵件是第一名,名字第二。 – user1192304 2012-02-15 06:45:21