laravel - 在 Laravel 中更新用户个人资料图像以及用户个人资料
问题描述
// Creating account
public function store()
{
$this->validate(request(),[
all inputs validated...
including ‘photo’ => ‘file|image|max:500’
]);
if(request()->hasFile(‘photo’)){
$path = request()->file(‘photo’)->store(‘profile’, ‘public’);
}
else{
$path = ‘avatar.jpg’;
}
$user = User::create(
[
// all inputs requested...
including ‘photo’ => $path,
]);
// I log user in and redirect to intended destination
// Success...was able to output profile photo and other things
}
// Now Update account is my problem
public function update(Request $request, User $user-profile)
{
$this->validate($request, [
all inputs validated..
including ‘photo’ => ‘file|image|max:1500
]);
// Genesis of my problem
if (request()->hasFile(‘photo’)){
$path = request()->file(‘photo’)->store(‘profile’, ‘public’);
}
else{
// Please what should I do here....
$user-profile->update(
[
// all inputs requested...
including ‘photo’ => ???
]);
}
更新方法的“else”条件是我的问题所在。原因:如果用户已经有个人资料照片,如果我在创建帐户期间执行相同的“其他”操作,则“avatar.jpg”会覆盖他们的初始照片,这是不正确的。请问我能做些什么来解决这个问题?因此,当用户注册照片时,它会被加载,否则会加载头像。但是当用户更新时,我该怎么办?提前致谢。
解决方案
像 store 一样做:
if (request()->hasFile(‘photo’)){
$path = request()->file(‘photo’)->store(‘profile’, ‘public’);
} else {
$path = ‘avatar.jpg’;
}
推荐阅读
- ffmpeg - ffmpeg 无法提取所有帧
- javascript - 提交时在客户端验证失败时关闭静态背景模式
- html - 背景视频覆盖了 HTML 标题标签
- c# - 如何在动作过滤器中正确读取 HttpRequest 的正文
- lazarus - Lazarus 循环播放音乐
- javascript - 来自 Action Creator 的 history.push() 将更改 URL 但不会导航到页面
- oracle - 比较日期时,从其他表中选择日期的列与日期的总和给了我错误的答案
- php - 使用php输出SQL数据时实现网格
- c++ - 如果读取元素,是否完全加载数组?(我基本上是在刷新缓存吗?)
- php - Salesforce php 服务错误