Обновление изображения профиля пользователя вместе с профилем пользователя в Laravel - PullRequest
0 голосов
/ 13 июля 2020
// 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» метода обновления. Причина: если у пользователя уже есть фотография профиля, если я сделаю то же «else», что и во время создания учетной записи, файл avatar.jpg заменит исходную фотографию, что неверно. Пожалуйста, что я могу сделать, чтобы решить эту проблему? Поэтому, когда пользователь регистрируется с фотографией, она загружается, иначе загружается аватар. Но когда пользователь обновляется, что мне делать? Заранее спасибо.

Ответы [ 2 ]

1 голос
/ 13 июля 2020

Сделайте то же, что и в магазине:

if (request()->hasFile(‘photo’)){
$path = request()->file(‘photo’)->store(‘profile’, ‘public’);
} else {
   $path = ‘avatar.jpg’;
}
0 голосов
/ 13 июля 2020

Я не думаю, что вам нужно другое ... если пользователь загрузил фотографию, вам нужно будет перезаписать путь пользователя в базе данных (что вы делаете в if), иначе вам не нужно, и вызов save () даже не должен коснитесь поля пути в db

Я предполагаю, что ваш код для создания не запускается каким-то образом, когда вы выполняете обновление.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...