首页 > 解决方案 > 在 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”会覆盖他们的初始照片,这是不正确的。请问我能做些什么来解决这个问题?因此,当用户注册照片时,它会被加载,否则会加载头像。但是当用户更新时,我该怎么办?提前致谢。

标签: laraveluploadphoto

解决方案


像 store 一样做:

if (request()->hasFile(‘photo’)){
$path = request()->file(‘photo’)->store(‘profile’, ‘public’);
} else {
   $path = ‘avatar.jpg’;
}

推荐阅读