Угадайте, что я отвечу сам.
Вопрос 1
отношения легче, если вы настроите внешний ключ в базе данных первой. Для этого вам нужно использовать MySQL (не SQLite) с движком InnoDB (а не MyISAM), и поле, о котором идет речь, нуждается в индексе. Затем Gii автоматически установит для вас функцию отношений. В противном случае вам придется делать это вручную в функции relations() рассматриваемой модели.
Чтобы использовать родственное значение в представлении:
В защищенной/виде/[имя модели] /view.php, в CDetailView атрибутов массива, изменить
'Status'
в
array('label'=>'Status', 'value'=>$model->RelationName->Name)
где RelationName - это имя отношения
Использовать связанную стоимость в индексе просматривать, изменять защищенные/виды/[название модели]/_ view.php (обратите внимание на подчеркивание), например, в этом случае вы бы изменить
$data->Status
в
$data->RelationName->Name
Чтобы использовать соответствующую величину в вид с Admin, в виджете вызова CGridView, в массиве колонок, замените сказать
'Status'
с
array('name'=>'Status', 'header'=>'Status', 'value'=>'$data->RelationName->Name')
(обратите внимание на использование переменных $ data, а не на $ model или $ dataProvider). Тем не менее, пытаясь выяснить, как сортировать и фильтровать ...
Вопрос 2
Чтобы использовать выпадающее меню, в защищенном/Views/[название модели]/_ form.php:
изменения
<?php echo $form->textField($model,'Status'); ?>
в
<?php echo $form->dropDownList($model,'Status', CHtml::listData(Status::model()->findAll(), 'ID', 'Name')); ?>
эль главный, вы джентльмен и ученый.
4 upvotes для ответа, 0 для вопроса? Веселая! Я обновляю оба. Очень полезно. – Smandoli 2012-08-25 20:38:47