我在cakephp中有一个表单,它实现了一个下拉列表,如下所示:
echo $this->Form->input('city', array('type' => 'select','options' => $cities, 'label' => 'City'));
传递给视图的$cities
数组类似于
Array
(
[0] => London
[1] => Tokyo
)
表单显示城市的名称(伦敦,东京,......)。
在提交表单时,表单提交id(密钥)(例如,如果用户选择伦敦,则为“0”)。相反,我想将值(伦敦)作为文本。我需要在视图中进行哪些更改,以返回包含值的字符串?
答案 0 :(得分:2)
您可以通过select
方法指定:
echo $this->Form->select('city', array(
'London' => 'London',
'New York' => 'New York',
'Tokyo' => 'Tokyo'
));
将生成:
<select name="data[Model][city]" id="ModelCity">
<option value="London">London</option>
<option value="New York">New York</option>
<option value="Tokyo">Tokyo</option>
</select>
请参阅:CakePHP manual
答案 1 :(得分:2)
Cake会使用您提供的值填充选择。如果您需要城市名称,则需要传递一个数组,其中您的密钥将是此名称。
$foo = array('London'=>'London', 'Tokyo'=>'Tokyo');
答案 2 :(得分:1)
将$ cities数组格式化为关联数组,同时将'keys'和'values'设置为城市名称;
$cities = array(
'London' => 'London',
'Paris' => 'Paris',
// etc.
);