Yii Gridview显示相关数据的图像

时间:2015-08-25 22:47:58

标签: yii2 yii-extensions yii2-advanced-app yii2-basic-app

我有表反馈和用户,我试图在反馈页面上显示用户的图像。 我正在使用网格视图,这是我的gridview。

        [   'attribute' => 'iduser.photo',
            'headerOptions' => ['width' => '20px'],
            'format' => 'image',
            'value'=>  function($data) { return $data->imageurl; },
        ],

和模型

public function getImageurl()
{
    return \Yii::$app->request->BaseUrl.'/../../'.$this->hasOne(User::className(), ['photo' => 'photo']);

}

我得到正确的网址,但光子名称错误,结果是“照片”,我想获取数据表单实体照片?

1 个答案:

答案 0 :(得分:0)

在您的模型中,您应该有办法让用户与您的反馈相关:

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

然后你的getImageurl方法应该是这样的:

public function getImageurl()
{
    return \Yii::$app->request->BaseUrl.'/../../'.$this->user->photo;
}

我建议您查看Aliases,然后使用它们代替\Yii::$app->request->BaseUrl。例如,这是我用来获取文件URL以向用户显示的实现:

public function getFileUrl() {
    return Yii::getAlias('@web/uploads/'.$this->fileName);
}