正在更新 Laravel 中的用户个人资料图片和用户个人资料
Updating user profile image along with user profile in 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”会覆盖他们的初始照片,这是不正确的。请问我该怎么做才能解决这个问题?因此,当用户使用照片注册时,它会被加载,否则头像会被加载。但是当用户更新时,我该怎么办?提前致谢。
与商店一样喜欢:
if (request()->hasFile(‘photo’)){
$path = request()->file(‘photo’)->store(‘profile’, ‘public’);
} else {
$path = ‘avatar.jpg’;
}
我认为您不需要 else.. 如果用户上传了照片,那么您将需要覆盖数据库中的用户路径(您在 if 中正在做),否则您不需要和 save() 调用甚至不应该触摸 db
中的路径字段
我假设您的创建代码在您进行更新时不会以某种方式被触发。
// 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”会覆盖他们的初始照片,这是不正确的。请问我该怎么做才能解决这个问题?因此,当用户使用照片注册时,它会被加载,否则头像会被加载。但是当用户更新时,我该怎么办?提前致谢。
与商店一样喜欢:
if (request()->hasFile(‘photo’)){
$path = request()->file(‘photo’)->store(‘profile’, ‘public’);
} else {
$path = ‘avatar.jpg’;
}
我认为您不需要 else.. 如果用户上传了照片,那么您将需要覆盖数据库中的用户路径(您在 if 中正在做),否则您不需要和 save() 调用甚至不应该触摸 db
中的路径字段我假设您的创建代码在您进行更新时不会以某种方式被触发。