Также немного обобщить:
В представлении с доступом к помощнику по форме
<?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',
));
?>
Последний пример, вы также можете предварительно выбрать опцию с выбранной клавишей. Значение должно соответствовать значению одного из параметров выбора, а не ключа.
<?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".
Ответ Азиза на # 2 является примером этого автоматического удара.