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