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


公共函数更新(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
<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>
发布于 2022-06-28 05:36:56
您没有将图像值存储在数据库中,请更新以下内容:
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
}发布于 2022-06-28 05:12:05
你搞错了吗?如果不是,您可能没有存储在UpdateDetailUserRequest中使用的所有值。
您也可以分享请求代码吗?
更新:
谢谢你分享我的请求。因为你是验证照片,角色,contact_number和传记。我建议修改以下内容。
更改:
$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();至:
$detail_user->save($request_detail_user->validated());发布于 2022-06-28 05:26:11
检查您的DetailUser模型,列photo是否可以填充?
尝试在您的模型中添加以下内容:
protected $fillable = ['id', 'photo', 'columnName', 'columnName'];或
protected $guarded = ['id'];https://stackoverflow.com/questions/72780907
复制相似问题