Yii Gridview 显示来自相关数据的图像
Yii Gridview show image from related data
我有 table 反馈和用户,我正在尝试在反馈页面上显示用户的图像。
我正在使用网格视图,这是我的网格视图。
[ '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']);
}
我答对了url但是照片名称是错误的结果是"photo",我想获取数据形式的实体照片?
在您的模型中,您应该有一种方法让用户与您的反馈相关,如下所示:
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);
}
我有 table 反馈和用户,我正在尝试在反馈页面上显示用户的图像。 我正在使用网格视图,这是我的网格视图。
[ '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']);
}
我答对了url但是照片名称是错误的结果是"photo",我想获取数据形式的实体照片?
在您的模型中,您应该有一种方法让用户与您的反馈相关,如下所示:
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);
}