CakePHP:从视图中返回非id

时间:2013-02-04 18:29:11

标签: cakephp

我在cakephp中有一个表单,它实现了一个下拉列表,如下所示:

echo $this->Form->input('city', array('type' => 'select','options' => $cities,              'label' => 'City'));

传递给视图的$cities数组类似于 Array ( [0] => London [1] => Tokyo )

表单显示城市的名称(伦敦,东京,......)。

在提交表单时,表单提交id(密钥)(例如,如果用户选择伦敦,则为“0”)。相反,我想将值(伦敦)作为文本。我需要在视图中进行哪些更改,以返回包含值的字符串?

3 个答案:

答案 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.
 );