2015-08-25 4 views
0

У меня есть обратная связь с пользователем и пользователь, я пытаюсь показать изображение пользователя на странице обратной связи. Я использую сетку, это мое gridview.Yii Gridview показать изображение из соответствующих данных

и модель

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

} 

я получить правильный URL, но photoname неправильно результат «фото», я хочу получать данные формы лица фото?

+0

Это поможет узнать ваши модели и их взаимосвязь, поскольку из-за того, внешний ключ, который связывает обе модели, но я не думаю, что это так. Кроме того, из этого утверждения yo объединяет базовый url с активным объектом записи, а не с фактическим полем. – marche

+0

Также это поможет узнать, как вы храните фотографии, потому что вы можете использовать псевдонимы вместо BaseUrl для создания URL-адреса изображения. – marche

+0

@marche Я не уверен, что обратная связь с моделью была создана. becouse, я просто добавляю объект Photo в пользователя таблицы. и у пользователя много отзывов, у обратной связи есть один пользователь. –

ответ

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); 
} 
+0

Omg, Спасибо, что работа действительно прекрасна :) –

Смежные вопросы