yii2显示用户名而不是用户ID

时间:2019-05-12 19:51:35

标签: php yii2 yii2-basic-app

我正在使用来自webvimark的yii2-user-management来开发我的项目。

我还使用BlameableBehavior记录数据更改。

当我查看数据时,它会在created_by和Updated_by字段中显示用户ID。

问题是如何在查看代码中显示用户名而不是ID?

1 个答案:

答案 0 :(得分:0)

按如下所示在模型中定义关系

public function getCreator(){
    return $this->hasOne(User::class,['id','created_by']);
}

public function getModifier(){
    return $this->hasOne(User::class,['id','updated_by']);
}

注意:如果您使用的是5.6或更早的php版本,则可以使用::className()代替::class。有关差异,请参见here

然后在视图中使用您的关系显示username字段而不是用户ID,我假设您正在使用DetailView

 <?php echo DetailView::widget([
        'model' => $model,
        'attributes' => [
            'creator.username',
            'modifier.username',
        ],
 ]);
 ?>