另外概括一下:
在可以访问表单助手的视图中
<?php
echo $form->input( 'dataKey', array(
'type' => 'select',
'options' => array(
'key1' => 'val1',
'key2' => 'val2',
),
));
?>
上面将呈现一个带有两个选项的选择输入。您还可以将空选项放置为第一项。传递 true 值只会将一个带有空白值的空选项附加到 HTML 中呈现的选项的开头。
<?php
echo $form->input( 'dataKey', array(
'type' => 'select',
'options' => array(
'key1' => 'val1',
'key2' => 'val2',
),
'empty' => true,
));
?>
您可以将字符串传递给“空”键,使其将自定义文本显示为空选项的键字段。
<?php
echo $form->input( 'dataKey', array(
'type' => 'select',
'options' => array(
'California' => 'CA',
'Oregon' => 'OR',
),
'empty' => 'choose a state',
));
?>
最后一个例子,您还可以使用所选键预先选择一个选项。该值应与value选择选项之一,而不是密钥。
<?php
echo $form->input( 'dataKey', array(
'type' => 'select',
'options' => array(
'California' => 'CA',
'Oregon' => 'OR',
),
'empty' => 'choose a state',
'selected' => 'California',
));
?>
从模型来看
Model->find( 'list', array( ... ));
将始终返回一个格式化为与选择框选项一起使用的数组。如果将数据传递到存储在具有小写复数模型名称的变量中的视图,即( $this->set( 'categories', $categories );
,然后您将通过使用视图中的表单助手并以单数形式传递后缀为“_id”的相同模型名称的数据索引,自动生成相关模型的下拉列表。
阿齐兹的回答 https://stackoverflow.com/questions/2658432/creating-select-listboxes-using-formhelper-in-cakephp/2658476#2658476#2 是自动魔法发挥作用的例子。
- CakePHP 1.3 表单助手 http://book.cakephp.org/view/1390/Automagic-Form-Elements
- CakePHP1.2 表单助手 http://book.cakephp.org/view/189/Automagic-Form-Elements