我想更新 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:link
在 storage
目录中创建 public
文件夹。
因此,每当我尝试上传图片时,图片都会成功存储在 public/storage
和数据库中,为了在刀片中检索它,我这样做了: >
<img
src="/storage/avatars/{{ Auth::user()->img }}"
alt="{{ Auth::user()->img }}"
/>
但问题是,它以某种方式不显示!!
那么这里出了什么问题,如何正确显示来自数据库的图像?
我真的很感激你们的任何想法或建议......
提前致谢。
答案 0 :(得分:0)
Auth::user()->img
应该是 Auth::user()->image