В приложении Yii у меня есть модели User
и Expert
('expert'=>array(self::BELONGS_TO, 'Expert', 'expert_id'),
).Как сделать Yii-CActiveForm не выбран элемент списка?
Существует форма для создания/редактирования пользовательских данных. Теперь я хочу, чтобы расширить его с помощью раскрывающегося списка:
<?php
/**
* @var $experts Expert[]
*/
$expertsDropDownListData = array();
foreach ($experts as $expert) {
$expertsDropDownListData[$expert->id] = $expert->name;
}
?>
<div class="row">
<?php
echo $form->labelEx($user, '', array('label' => Yii::t('app', 'Some text...')));
?>
<?php
echo $form->dropDownList(
$user, 'expert[id]', $expertsDropDownListData,
array(
'empty' => Yii::t('app', 'Please select an expert.'),
// 'options' => array('' => array('selected' => 'selected')),
// 'prompt'=>'Choose One',
)
);
?>
<?php echo $form->error($user, 'expert[id]'); ?>
</div>
Я хочу выпадающий список никогда не иметь экспертную запись как запись ульда по умолчанию. На странице load alwys пустое значение должно быть «выбрано». Он работает на страницах пользователей, у которых нет соответствующего эксперта (в таблице users
столбец expert_id
равен NULL
). Но на страницах пользователя, у которых есть эксперт, экспертная запись пользователя получает selected
.
Как разрешить объект CActiveForm
выбрать antry и отобразить форму без предварительного selected
значение независимо от отношений между таблицами и объектами?
Спасибо за ваш ответ! Это рабочее решение, +1 для него, но на самом деле это всего лишь обходной путь. Я думаю, что «разрушение» объекта не является действительно чистым подходом. – automatix