una tag poner imagen hiddeninput como blank activedropdownlist php model-view-controller yii2

php - tag - yii2 obtiene nombre en lugar de id



yii2 helpers url (2)

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:

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

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.


Una solución más fácil

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


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

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