yii2 получить имя вместо id

Привет, у меня эта странная проблема. У меня было отношение таблицы. и я хочу посмотреть имя связанного поля таблицы вместо id.

вот моя модель:

public function getQCat() { return $this->hasOne(QbCategory::className(), ['id' => 'q_cat']); } 

вот мое мнение:

 <?php echo DetailView::widget([ 'model' => $model, 'attributes' => [ 'q_cat', 'question:ntext', 'q_c1:ntext', 'q_c2:ntext', 'q_c3:ntext', 'q_c4:ntext', 'q_ans:ntext', ], ]) ?> 

что поле «q_cat» в поле зрения я хочу отображать имя вместо id. Я попытался использовать «q_cat.name», но он говорит (не установлен).

Благодарю.

если вы используете модель QbCategory

 id name 

и вы хотите получить доступ к значению QbCategory в своем основном классе, вы можете получить доступ к имени атрибута таким образом
в основном классе

добавить отношение

 public function geQcat() { return $this->hasOne(QbCategory::className(), ['id' => 'qcat_id']); // qcat_id is the column name in Main class that join QCat to Main 

то вы можете построить геттер для имени QbCategory

 public function getQcatname() { return $this->qcat->name; // name is the name of name column in QCat } 

затем в вашем главном окне просмотра деталей

 <?php echo DetailView::widget([ 'model' => $model, 'attributes' => [ 'qcatname', // this i the ref for getQcatname function in Main Model 'question:ntext', 'q_c1:ntext', 'q_c2:ntext', 'q_c3:ntext', 'q_c4:ntext', 'q_ans:ntext', ], ]) ?> 

Простое решение

 [ 'attribute' => 'q_cat', 'value => $model->Qcat->qcat_name ]