如何从cakephp中的数组创建一个值和标签相同的select?

时间:2011-06-30 07:04:14

标签: html cakephp-1.3

我从表中在控制器中创建了一个数组:

$tasktemplateResults = $this->Tasktemplate->find('list');

在视图中,我有一个表单助手,可以创建一个下拉列表:

echo $this->Form->input('Tasktemplate.id', array('options' => array($tasktemplateResults),'label' => 'Task'));

html输出如下:

<div class="input select">
    <label for="TasktemplateId">Task</label>
    <select name="data[Tasktemplate][id]" id="TasktemplateId"> 
        <option value="1">Test task</option> 
        <option value="2">Second test task</option> 
    </select>
</div>

我想要这个html输出:

<div class="input select">
    <label for="TasktemplateId">Task</label>
    <select name="data[Tasktemplate][id]" id="TasktemplateId"> 
        <option value="Test task">Test task</option> 
        <option value="Second test task">Second test task</option> 
    </select>
</div>

如何使名称和值对与上面显示的数组相同?

2 个答案:

答案 0 :(得分:1)

您可以向find'list'方法添加参数,以指定用于键和值的字段。

示例:

    $usernameMap = $this->Article->User->
find('list', array('fields' => array('User.username', 'User.first_name')));

http://book.cakephp.org/view/1022/find-list

答案 1 :(得分:1)

控制器中的数组

$tasktemplateResults = $this->Tasktemplate->find('list', array('fields' => array('Tasktemplate.name')));

并在视野中

echo $this->Form->select('task', $tasktemplateResults);