yii2获取名称而不是id

时间:2017-05-12 01:25:30

标签: php model-view-controller yii2

嗨我有这个奇怪的问题。我有一个表关系。我想查看相关的表字段名称而不是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',
        ],
    ]) ?>

&#39; q_cat&#39;视野中的字段我想显示名称而不是ID。我尝试使用&#39; q_cat.name&#39;但它说(没有设定)。

感谢。

2 个答案:

答案 0 :(得分:1)

假设你的QbCategory模型是

inviteData

并且您希望在主类中访问QbCategory值 您可以通过这种方式访问​​属性名称 在主类

添加关系

id
name 

然后你可以为QbCategory名称

建立一个getter
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

然后在你的主要细节视图

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

答案 1 :(得分:0)

更简单的解决方案

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