Как создать выбор с одинаковым значением и меткой из массива в CakePHP? - PullRequest
4 голосов
/ 30 июня 2011

Я создал массив в контроллере из таблицы:

$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 ]

1 голос
/ 05 июля 2011

массив в контроллере

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

и в поле зрения

echo $this->Form->select('task', $tasktemplateResults);
1 голос
/ 30 июня 2011

Можно добавить параметры в метод поиска 'list', чтобы указать, какие поля использовать для ключа и значения.

Пример:

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

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

...