2011-07-03 20 views
0

我在我的添加/編輯課程享有以下行:更改與AUTOMAGIC形式幫助各個標籤上的「多」 =>「複選框」

echo $this->Form->input(
    'Competency', 
    array(
     'label' => 'Which competencies does this course address?', 
     'multiple' => 'checkbox' 
    ) 
); 

(建模爲課程的hasMany技能)

我想定製爲每種能力獲取輸出的標籤,但似乎無法找到這樣做的方式 - 「標籤」字段似乎用作組標題,而不是爲單個複選框更改標籤。

(我的理想是以後是什麼,而不是僅僅顯示Competency.name我可以顯示Competency.name加上Competency.code作爲標籤)

NB我想過改變displayField但要改變它無處不在,只有在這裏我纔會變得與衆不同。

回答

1

創建virtual field [details]

//in your Competency model 
var $virtualFields = array(
    'name_code' => 'CONCAT(Competency.name, " ", Competency.code)' 
); 

然後在你的控制器,檢索數據之前,您displayField設置爲您剛剛創建的虛擬領域:

//in your controller prior to the find 
$this->Competency->displayField = 'name_code'; 

既然你設置displayField在控制器不會將其設置爲永久性的,因此無需將其設置回來,但如果在此之後立即執行更多查找操作,則可以隨時將其設置回name(如果需要)。

+0

戴夫 - 你絕對的明星!我不知道virtualFields - 我知道必須有一個簡單的方法來做到這一點!謝謝! – Ash