Я новичок в yii
рамки, и я не могу найти, как показать отношения в поле зрения.
Я попробовал так:
my model (Cities.php)
public function relations()
{
// NOTE: you may need to adjust the relation name and the related
// class name for the relations automatically generated below.
return array(
'states' => array(self::BELONGS_TO, 'State', 'state_id')
);
}
Мой код просмотра, как показано ниже:
<?php
$cities = Cities::model()->findAll();
foreach($cities as $city){
$state=States::model()->findByPk($city->id);?>
<tr>
<td><?php echo cities.state_id;?></td>
</tr>
<?php } ?>
Но я получаю error undefined index cities
, Как я могу исправить эту ошибку?
Это будет работать:
<?php
$cities = Cities::model()->findAll();
foreach($cities as $city) {
?>
<tr>
<td><?php echo $city->states->state_name;?></td>
</tr>
<?php
}
?>
Модель:
public function relations()
{
// NOTE: you may need to adjust the relation name and the related
// class name for the relations automatically generated below.
return array(
'states' => array(self::BELONGS_TO, 'State', 'state_id')
);
}
Вот,
states
это имя отношения
BELONGS_TO
это тип отношений
State
модель, к которой она подключена
state_id
это внешний ключ
Замените ваш код, как показано ниже:
<?php echo $city.state_id;?></td>
Я заменил cities.state_id
в $city.state_id
две ошибки, как показано ниже
$cities
и ваша переменная $city
это один объект.echo cities.state_id
как здесь вы должны использовать $ city, а также вы не добавляете $
имя для переменной.РЕДАКТИРОВАТЬ после прочтения вашего комментария:
Теперь, если вы хотите показать название штата, используя отношение, вы можете сделать это, как показано ниже:
<?php echo $city->states->state_name; ?>
где states
это имя отношения