Всем здравствуйте. Есть 4 таблицы БД MySql
Users - тб пользователей. Со строками: country_id(страна) region_id(область) city_id (Город). Geo_countries - тб со странами (id, name и т д).
Geo_regions - тб с регионами(id, name и т д).
Geo_city - тб с городами(id, name и т д).
Как в Yii1 задать связь этих таблиц, и вывести в форме регистрации так, что бы выбирая например "Россия" выпадали только российские регионы?
Привожу код который уже написал:
Файл модели Users.php связь с табличкой Geo_countries прописал так:
/**
* @return array relational rules.
*/
public function relations()
{
return array(
'geo_countries' => array(
self::BELONGS_TO, 'GeoCountries', 'country_id'), );
}
Вывожу в профиле юзера страну вот так(файл views.php):
<b><?php echo CHtml::encode($data->getAttributeLabel('country_id')); ?>:</b>
<?php echo CHtml::encode($data->geo_countries->name); ?>
<br />
В файле формы редактирования юзера и создания вывожу выпадающий список вот так:
<div class="row">
<?php $models = GeoCountries::model()->findAll(
array('order' => 'ordering'));
$list = CHtml::listData($models, 'id', 'name'); ?>
<?php echo $form->labelEx($model,'id', $data); ?>
<?php echo $form->dropDownList($model,'geo_countries', array('empty'=>'Выбор страны', $list)); ?>
<?php echo $form->error($model,'id'); ?>
</div>
В контроллерах ничего не трогал. Ни в userController ни в geoCountriesController.
Список выводиться но как то странно... после "Выбор страны" какой то 0 (ноль) непонятный вылез.
Вот так примерно выглядит:
>
Выбор страны
0
Страна 1
Страна 2
итд
Вылез какой то непонятно откуда взявшийся ноль, и самое главное что при редактировании или создании юзера, данные о стране не записываются в БД. То биш не сохраняются.
Очень нужна помощь специалистов по yii1. Что не так я сделал? Почему в бд ничего не записывается... и что это за странный ноль в массиве?