我試圖爲CakePHP中的選擇框設置默認值。我的選擇是使用模型的靜態函數,它是像這樣從CakePHP中的控制器調用靜態模型函數
public static function purpose($value = null)
{
$options = array(
self::PURPOSE_HOMECONSUMPTION => __('Home Consumption', true),
self::PURPOSE_COMMERCIAL => __('Commercial', true)
);
return self::enum($value, $options);
}
// Constants for status attribute
const PURPOSE_HOMECONSUMPTION = '0';
const PURPOSE_COMMERCIAL = '1';
在我看來定義訪問,我以這種方式調用這個靜態函數
echo $this->Form->input('purpose', array(
'type' => 'select',
'options' => Field::purpose()
足夠可以肯定的填充選擇框選擇選項,但默認值是Home Consumption
。我想設置它Commercial
。我在控制器上試過這樣的東西
$this->request->data['Field']['purpose'] = Field::purpose(1);
但它不起作用。有關如何在控制器中將值設置爲Commercial
的靜態函數的任何想法。
看起來像我的靜態枚舉..:P – mark
爲什麼不對輸入使用'default'選項? – arilia
@arilia默認值(來自模型層)IMO是邏輯IMO的一部分,應該位於控制器的else子句中。 – mark