Доброго времени суток.
Не могу понять как можно взять из базы данных имена городов и их ID и сделать из этого форму типа селект.
Подскажите пожалуйста.
Доброго времени суток.
Не могу понять как можно взять из базы данных имена городов и их ID и сделать из этого форму типа селект.
Подскажите пожалуйста.
http://www.yiiframework.com/doc/api/CHtml#listData
http://www.yiiframework.com/doc/api/CHtml#dropDownList-detail
Сделал вот так в контролере было написано следующще
$data = ConstCity::model()->findAll();
$this->render('create',array('model'=>$model,'data'=>$data,));
Где $data типа CActiveRecord
Во вьювере
<div class="form">
<?php $form=$this->beginWidget('CActiveForm'); ?>
...
<div class="row">
<td><?php echo $form->labelEx($model,'city'); ?></td>
<td><?php echo $form->dropDownList('city','',Chtml::listData($dataProvider,'city_id','city_name')); ?>
<?php echo $form->error($model,'city'); ?></td>
</div>
....
<?php $this->endWidget(); ?>
Получил ошибку Invalid argument supplied for foreach()
Посмотрел в описании функции нашел такую строку
Что выходит даный способ только для типа CDbCommand а c CActiveRecord нельзя или я ошибаюсь и что то не так делаю.
Маленько не так делаете.
<td><?php echo $form->dropDownList(‘city’,’’,Chtml::listData($data,‘city_id’,‘city_name’)); ?>
$dataProvider = new CActiveDataProvider('city', array(...));
$this->render('..', array('dataProvider'=>$dataProvider));
а затем во вью
<td><?php echo $form->dropDownList('city','',Chtml::listData($dataProvider->getData(),'city_id','city_name')); ?>
Спасибо, все понятно.