Подскажите пожалуйста, а то всю голову что сломал.
У меня есть 2 таблицы: одна с курсами (cource), а другая с авторами (author).
Я в "Курсе" во view() - в форме вывожу список авторов курсов:
<?php $authors = \common\models\Author::find()->where(['status' => 1])->all();
$items = \yii\helpers\ArrayHelper::map($authors,'id','name');
$params = ['prompt' => '--- Укажите автора ---'];
echo $form->field($model, 'author',['options' => ['class' => 'col-xs-2']])->dropDownList($items,$params);
?>
При сохранении, в поле "author" таблицы "course" записывается id автора. В принципе так и нужно. Вот только я когда его вывожу в DetailView и GridView он не выводится и пишет "(not set)":
<?= DetailView::widget([
'model' => $model,
'attributes' => [
'id',
[
'attribute' => 'category_id',
'value' => function($data){
return $data->category->name;
},
],
'name',
'content:raw',
[
'attribute' => 'author',
'value' => function($model){
return $model->author->name;
},
],
'description',
[
'attribute' => 'statusName',
'value' => function($model) {
return Html::tag('span',
$model->getStatusName(),
['class' => 'label label-' . ArrayHelper::getValue([0 => 'danger', 1 => 'success'], $model->status_id)]
);
},
'format' => 'raw',
],
'smallImage:image',
],
]) ?>
и
<?= GridView::widget([
'dataProvider' => $dataProvider,
'filterModel' => $searchModel,
'columns' => [
['class' => 'yii\grid\SerialColumn'],
[
'class' => 'yii\grid\ActionColumn',
'header' => 'Действия',
'options' => ['width' => '10']
],
[
'attribute' => 'category_id',
'value' => function ($data) {
return $data->category->name;
},
'options' => ['width' => '200']
],
'name',
[
'attribute' => 'author',
'value' => function ($data) {
return $data->author->name;
},
'options' => ['width' => '200']
],
'smallImage:image',
[
'attribute' => 'status_id',
'filter' => \common\models\Course::getStatusList(),
'value' => 'statusName',
],
],
]); ?>
Таблицы связывал вот так:
1. Author:
public function getCourse()
{
return $this->hasMany(Course::className(), ['author' => 'id']);
}
2. Course:
public function getAuthor()
{
return $this->hasOne(Author::className(), ['id' => 'author']);
}
Подскажите пожалуйста в чем может быть проблема? За ранее большое спасибо))