表中的两个字段与另一个表中的字段相关

时间:2015-05-14 17:23:43

标签: yii2

我有一个模型/表请求,其中包含与字段 id 相关的2个字段( user_id analyst_id )在模型表用户

在我看来,我有一个带有字段的网格视图:

[
    'attribute' => 'user_id',
    'enableSorting' => true,
    'value' => function ($model) {                      
               return $model->user->username;
           },
]

如何与analyst_id相同(我需要根据另一个ID显示用户名)?

更新

enter image description here

2 个答案:

答案 0 :(得分:1)

只需为分析师创建另一种关系:

添加模型:

public function getAnalyst()
{
    return $this->hasOne(User::className(), ['id' => 'analyst_id']);
}

在GridView中显示:

[
    'attribute' => 'analyst_id',
    'enableSorting' => true,
    'value' => function ($model) {                      
        return $model->analyst->username;
    },
],

或者,如果分析师可能不存在,请替换return部分:

return $model->analyst ? $model->analyst->username : null;

答案 1 :(得分:0)

我认为

  'value' => function ($model) {                      
                return User::findOne($model->analyst_id)->username;
            },

PS为User添加正确的命名空间