Я пытаюсь использовать мутатор для хранения и извлечения граватара пользователей.
В моей модели User у меня есть:
public function getGravatarAttribute($gravatar){
if($gravatar){
$image = Storage::disk('local')->get('public/avatars/'.$gravatar.'.jpg');
return new Response($image, 200);
}
$hash = md5(strtolower(trim($this->attributes['email'])));
return "http://www.gravatar.com/avatar/$hash?s=256";
}
public function setGravatarAttribute($gravatar){
if(is_object($gravatar) && $gravatar->isValid()){
$image = Image::make($gravatar)->fit(256, 256);
Storage::disk('local')->put('public/avatars/'.$this->id . '.' . $gravatar->getClientOriginalExtension(), $image->response());
$this->attributes['gravatar'] = $this->id;
}
}
В файле Blade я делаю:
<img id="avatar" src="{{ $user->gravatar }}" alt="your image" width="256" height="256"/>
Мутатор работает прекрасно: изображение хранится в каталоге storage/app/public/avatars
. Проблема в аксессуаре: если я использую dd($image);
перед возвратом, я вижу данные, но они не отображаются на странице html.