首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >上传的图像但数据库未更新(用Laravel 8更新图像数据)

上传的图像但数据库未更新(用Laravel 8更新图像数据)
EN

Stack Overflow用户
提问于 2022-06-28 04:55:23
回答 3查看 155关注 0票数 1

我有更新配置文件的功能。该表是用户HasOne DetailUser,因此每个用户都有一个详细用户。一切正常,除了照片更新。当我试图更新照片时,照片被成功地更新到公共存储中,但是数据库没有更新。也许有人能帮我。谢谢..。

  1. 控制器

公共函数更新(UpdateProfileRequest $request_profile,UpdateDetailUserRequest $request_detail_user) { $data_profile =$$request_profile>all();$data_detail_user = $request_detail_user->all();

// save to user $user = User::find(Auth:: user ()->id);$user = User::where('id',Auth::user()->id)->first();$user->name =$request>input(‘name’);// save if($user->save()) { $detail_user =DetailUser::->first($user->DetailUser->id);$detail_user =DetailUser::其中(‘id’,$user->detail_user->id)->first();//从存储中删除旧文件if (isset($ $data _Det细节_user‘’photo‘)){$data=’$data/‘。$detail_user‘’photo‘;if (存储:存在($data)){ Storage::delete($data);} else {storage::delete(存储/app/public)。$detail_user‘photo’;}/存储文件以存储if (isset( $data_detail_user'photo‘)) {$data_detail_user’photo‘=$request_detail_user->文件(’照片‘)->store(’资产/照片‘,'public’);}$detail_user->角色=$request_detail_user->输入(‘角色’);$detail_user->contact_number = $request_detail_user->input('contact_number');$detail_user->传记=$request_detail_user->输入(“传记”);$detail_user-> save ();} //保存到体验$experience_user_id = ExperienceUser::where('detail_user_id',$detail_user‘id’id‘)->first();如果(isset($experience_user_id)) { foreach ($data_profile'experience‘as $key => $value) { $experience_user = ExperienceUser::find($key);$$experience_user_user->detail_user_id= $detail_user'id';$$experience_user_user->$experience_user= $value;$$experience_user_user->save();}{ foreach ($data_profile'experience‘as $key => $value) { if (isset($value)) { $experience_user =新ExperienceUser;$$experience_user_user->detail_user_id= $detail_user'id';$experience_user->experience = $value;$$experience_user_user->save();}}->success(‘更新已成功’);返回();

}

view

代码语言:javascript
复制
                              <div class="flex items-center mt-1">                                           @if (auth()->user()->detail\_user()->first()->photo)                                              <img src="{{ asset('storage/assets/photo/'. auth()->user()->detail\_user()->first()->photo) }}" alt="photo profile" class="w-16 h-16 rounded-full">                                          @else                                              <span class="inline-block w-16 h-16 overflow-hidden bg-gray-100 rounded-full">                                                  <svg class="w-full h-full text-gray-300" fill="currentColor" viewBox="0 0 24 24">                                                      <path d="M24 20.993V24H0v-2.996A14.977 14.977 0 0112.004 15c4.904 0 9.26 2.354 11.996 5.993zM16.002 8.999a4 4 0 11-8 0 4 4 0 018 0z" />                                                  </svg>                                              </span>                                          @endif                                           <label for="choose" class="px-3 py-2 ml-5 text-sm font-medium leading-4 text-gray-700 bg-white border border-gray-300 rounded-md shadow-sm hover:bg-gray-50 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-green-500">Choose File</label>                                          <input type="hidden" name="old\_photo" value="{{ auth()->user()->detail\_user()->first()->photo }}">                                              <input type="file" accept="image/\*" id="choose" name="photo" hidden>                                           <a href="{{ route('member.delete.photo.profile') }}" type="button" class="px-3 py-2 ml-5 text-sm font-medium leading-4 text-red-700 bg-transparent rounded-md hover:bg-gray-50 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-green-500" onclick="return confirm('Are you sure want to delete your photo?')">                                              Delete                                          </a>                                      </div>                                       @if ($errors->has('photo'))                                          <p class="text-red-500 mb-3 text-sm">{{ $errors->first('photo') }}</p>                                      @endif                                   </div>

  1. 叶片
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2022-06-28 05:36:56

您没有将图像值存储在数据库中,请更新以下内容:

代码语言:javascript
复制
if (isset($data_detail_user['photo'])) {
         $data_detail_user['photo'] = $request_detail_user->file('photo')->store(
             'assets/photo', 'public'
         );
    $detail_user->photo = $data_detail_user['photo']; //or some uniquely generated image name
}
票数 0
EN

Stack Overflow用户

发布于 2022-06-28 05:12:05

你搞错了吗?如果不是,您可能没有存储在UpdateDetailUserRequest中使用的所有值。

您也可以分享请求代码吗?

更新:

谢谢你分享我的请求。因为你是验证照片,角色,contact_number和传记。我建议修改以下内容。

更改:

代码语言:javascript
复制
$detail_user->role = $request_detail_user->input('role');
$detail_user->contact_number = $request_detail_user- >input('contact_number');
$detail_user->biography = $request_detail_user->input('biography'); 
$detail_user->save();

至:

代码语言:javascript
复制
$detail_user->save($request_detail_user->validated());
票数 0
EN

Stack Overflow用户

发布于 2022-06-28 05:26:11

检查您的DetailUser模型,列photo是否可以填充?

尝试在您的模型中添加以下内容:

代码语言:javascript
复制
protected $fillable = ['id', 'photo', 'columnName', 'columnName'];

代码语言:javascript
复制
protected $guarded = ['id'];
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72780907

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档