У меня возникла проблема при отображении данных из связанной таблицы с помощью 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 и отображения данных из связанной таблицы? , извините, если мой английский язык не очень хорошо.
ouh.. просто как это? Почему я не такой гений, как ты? .. хе-хе .. ответы на мой вопрос. – shahril
** @ shahril ** Отметьте ответ как принятый. –