2011-04-14 133 views
0

我想填充一個下拉選擇表單與數據庫中的值。CakePHP - 填充選擇表單

這是我目前的。

$modes = Set::combine($this->Setting->find('all', array('conditions' => array('setting_name LIKE' => 'mode_%'))), '{n}.Setting.id','{n}.Setting.setting_name'); 
$this->set('modes', $modes); 
視圖

那麼,這就是我

echo $form->select('current_mode',$modes); 

即輸出

<select name="data[Setting][current_mode]" id="SettingCategoryId"> 
<option value=""></option> 
<option value="2">mode_2</option> 
<option value="1">mode_1</option> 
<option value="3">mode_3</option> 
</select> 

,我現在所擁有的幾乎工作,但我怎樣才能使輸出到輸出是這樣嗎?

<select name="data[Setting][current_mode]" id="SettingCategoryId"> 
<option value="mode_2">Title 2</option> 
<option value="mode_1">Title 1</option> 
<option value="mode_3">Title 3</option> 
</select> 

注:
1.空值沒有默認選項
2.期權的價值是不是ID和頭銜來自於表中的「標題」字段

謝謝,
三通

回答

1

您可以通過模式要循環,併爲每個模式的選項,如下所示:

$options = array(); 

foreach($modes as $mode) 
{ 
    $options[$mode] = "Title " . $mode; 
} 

echo $form->select('current_mode', $options); 

您可以把上面的邏輯視圖,或者你可以在你的控制器做,然後設置這樣的變量:

$this->set("options", $options); 

在這裏文檔解釋了選擇元素的方法非常好:

http://book.cakephp.org/view/1430/select

+2

投票下來沒有任何解釋?它不像欺騙的解決方案那麼簡潔,但這個答案沒有錯,也沒有任何性能不足。 – Adam 2011-04-14 07:20:25