图像不显示在刀片​​上

时间:2021-02-23 17:33:00

标签: php laravel laravel-8

我想更新 image 表的 users 行。这是我的表格:

<form method="POST" action="{{ route('profile.update' , ['profile' => Auth::user()->id]) }}" enctype="multipart/form-data">
   @csrf
   @method('PATCH')
   <input type="file" class="form-control-file" id="exampleFormControlFile1" name="image">
   <button type="submit" class="btn btn-primary">
        {{ __('Submit') }}
    </button>
</form>

然后我的控制器中有这个 update 方法:

public function update(Request $request, $profile)
{
    $validate_data = Validator::make($request->all(),[
        'image' => 'image|nullable|max:1999',
        'location' => 'nullable'
    ]);

    if($request->hasFile('image')){
        // get filename with extension
        $filenameWithExt = $request->file('image')->getClientOriginalName();
        // get just filename
        $filename = pathinfo($filenameWithExt, PATHINFO_FILENAME);
        // get just ext
        $extension = $request->file('image')->getClientOriginalExtension();
        // filename to store
        $fileNameToStore = $filename.'_'.time().'.'.$extension;
        // upload
        $path = $request->file('image')->storeAs('public/avatars', $fileNameToStore);
    }else{
        $fileNameToStore = 'noimage.jpg';
    }

    $user = User::findOrFail($profile);

    $user->update([
        'location' => request('location'),
        'image' => $fileNameToStore
    ]);

    $user->save();

    return back();
}

我还运行了命令 php artisan storage:linkstorage 目录中创建 public 文件夹。

因此,每当我尝试上传图片时,图片都会成功存储public/storage 和数据库中,为了在刀片中检索它,我这样做了: >

<img
src="/storage/avatars/{{ Auth::user()->img }}"
alt="{{ Auth::user()->img }}"
/>

但问题是,它以某种方式不显示!!

那么这里出了什么问题,如何正确显示来自数据库的图像?

我真的很感激你们的任何想法或建议......

提前致谢。

1 个答案:

答案 0 :(得分:0)

Auth::user()->img 应该是 Auth::user()->image