2015-04-07 2 views
2

У меня возникла проблема при отображении данных из связанной таблицы с помощью yii2. Я использую свой собственный дизайн и не использую дизайн yii2. У меня есть две таблицы пользователей и состояниякак отображать данные из связанной таблицы в yii2?

TABLE `user`(
`user_id` int(11) NOT NULL auto_increment, 
`state_id` int(11) null 

table `state`(
`state_id` int(11) NOT NULL auto_increment, 
`state` varchar(225) null 

UserModel.php

public function getStates() 
{ 
    return $this->hasOne(State::className(),['state_id' =>'state_id']); 
} 

UserController.php

public function actionView($id) 
{ 
    return $this->render('view', [ 
     'model' => $this->findModel($id), 

    ]); 
} 

State.php

public function attributeLabels() 
{ 
    return [ 
     'state_id' => 'State ID', 
     'state' => 'State', 
    ]; 
} 

public function getState() 
{ 
    return $this->state.''; 
} 

view.php

<table>..<tr> 
    <td>Negeri</td> 
    <td><?php echo $model->states; ?></td> 
</tr> 

, когда я использую $ модели-> государства; Я получил ошибку при выполнении в браузере. Ошибка: «Объект класса app \ models \ State не может быть преобразован в строку». Прежде чем написать этот код, я использую $ model-> state_id, а результатом является числовое значение, которое является атрибутом state_id из состояния таблицы. Я хочу, это имя состояния (атрибут состояния из состояния таблицы), а не state_id. Если вы используете дизайн yii2, результаты будут отображаться из того, что я хочу. Этот код его внешний вид, как это ::

<?= DetailView::widget([ 
    'model' => $model, 
    'attributes' => [ 
     'states.state', 

    ], 
]) ?> 

Итак, мой вопрос заключается в том, чтобы вспомнить функцию getStates() из UserModel.php или GetState() из state.php, что я создал для view.php и отображения данных из связанной таблицы? , извините, если мой английский язык не очень хорошо.

ответ

4

Поскольку $model->states является объектом, вы должны просто использовать:

<?= $model->states->state ?> 

И вам не нужно getState() функцию в Государственной модели.

+0

ouh.. просто как это? Почему я не такой гений, как ты? .. хе-хе .. ответы на мой вопрос. – shahril

+0

** @ shahril ** Отметьте ответ как принятый. –

Смежные вопросы