yii2 obtiene nombre en lugar de id

Hola, tengo este extraño problema. Tuve una relación de mesa. y quiero ver el nombre del campo de tabla relacionado en lugar de id.

aquí está mi modelo:

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

aquí está mi punto de vista:

  $model, 'attributes' => [ 'q_cat', 'question:ntext', 'q_c1:ntext', 'q_c2:ntext', 'q_c3:ntext', 'q_c4:ntext', 'q_ans:ntext', ], ]) ?> 

ese campo ‘q_cat’ a la vista quiero mostrar el nombre en lugar de la identificación. Intenté usar ‘q_cat.name’ pero dice (no establecido).

Gracias.

asumiendo que el modelo QbCategory es

 id name 

y desea acceder al valor de QbCategory en su clase principal, puede acceder al nombre del atributo de esta manera
en clase principal

agregar relación

 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 

entonces puedes construir un getter para el nombre de QbCategory

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

luego en la vista detallada de las Clams principales

  $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', ], ]) ?> 

Una solución más fácil

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