首页 > 解决方案 > 在 laravel 资产()方法中需要帮助

问题描述

这是我在控制器中的代码:

    public function update(User $user)
{
    $attributes = request()->validate([
        'username' => [
            'string',
            'required',
            'max:255',
            'alpha_dash',
            Rule::unique('users')->ignore($user),
        ],
        'name' => ['string', 'required', 'max:255'],
        'avatar' => ['file'],
        'email' => [
            'string',
            'required',
            'email',
            'max:255',
            Rule::unique('users')->ignore($user),
        ],
        'password' => [
            'string',
            'required',
            'min:8',
            'max:255',
            'confirmed',
        ],
    ]);

    $attributes['avatar'] = request('avatar')->store('avatars');

    $user->update($attributes);
    $user->password = Hash::make($user['password']);
    $user->save();
    return redirect($user->path());
}

在用户模型中:

public function getAvatarAttribute($value)
 {
    return asset($value);        
 }

在 show.blade :

<img
            src= "{{ $user->avatar }}"
            alt=""
            class="rounded-full mr-4 absolute"
            style="width: 150px; left: calc(50% - 75px); top: 300px"
        >

但是当我转到个人资料时,图像没有出现,链接是“ http://127.0.0.1:8000/avatars/JyDwtghw73u9hakMZEThiQfrj5AK33ZA1FOO47qN.png

我尝试使用 mover() 方法而不是 store() 方法并且它可以工作,但是 move() 没有在公共场合为图像制作副本,它只是将图像从我设备中的原始路径链接起来

任何人都可以帮助我吗?

标签: phplaravelwebweb-deployment

解决方案


推荐阅读