Метод storage, когда я делаю update наследство в отличный маршрут

когда я пробую делать update моего профиля пользователя, специально в части аватара, когда поверит пользователь, нет никакой проблемы, но сделав update, сохраняет это мне таким образом /private/var/tmp/phpkvpriG сделав один dd или return, он показывает мне правильно маршрут public/uxxs4f8ufQEzTOguMMzigwHOdR6HtGvIiq8AeGNb.png, в моем драйвере у меня это есть таким образом метод update

public function update(UpdateUserRequest $request, $id)
    {
        // return $request->file('avatar')->store('public');
        $user = User::findOrFail($id);
        $this->authorize($user);
        if ($request->hasFile('avatar'))
        {
            $user->avatar = $request->file('avatar')->store('public');
        }
        $user->update($request->all());
        $user->roles()->sync($request->roles);
        return back()->with('info', 'Usuario Actualizado');
    }
1
задан 07.11.2019, 17:55
1 ответ

Проблема, которую я вижу, состоит в том, что в этой lГ-nea ты распределяешь ему стоимость маршрута в файл в признак аватар, но это не сохраняешь:

$user->avatar = $request->file('avatar')->store('public');

и хотя ты это сохранял ahГ, - потом это sobreescrbirГ-схвати в этой другой lГ-nea

$user->update($request->all());

, так как ты используешь данные request, не имея новой информации о маршруте в виду.

Есть несколько способов это предотвращать, простая одна может быть сохраняя данные request в переменной, и распределять стоимость маршрута файла в элемент соответствующего array в этой переменной, и в конце концов использовать данные о переменной, чтобы обновлять BD:

$data = $request->all();
$data['avatar'] = $request->file('avatar')->store('public');
$user->update($data);

Совсем mГ©todo:

public function update(UpdateUserRequest $request, $id)
{
    $user = User::findOrFail($id);
    $this->authorize($user);
    $data = $request->all();
    if ($request->hasFile('avatar'))
        $data['avatar'] = $request->file('avatar')->store('public');
    $user->update($data);
    $user->roles()->sync($request->roles);
    return back()->with('info', 'Usuario Actualizado');
}
0
ответ дан 01.12.2019, 12:21
  • 1
    Эта часть, которую ты поместил мне, служила больше без взамен я делаю два раза метод update и не думаю, что он необходим, в принципе он подал меня, но в методе update в $ request-> all (), используйте метод except и я произошел с ним, как array поле аватар, одинокое альтернативное решение – Dohko19 08.11.2019, 07:03
  • 2
    Не entendí хорошо то, что ты объясняешь в комментарии, но если ты нашел solució n различный, я верю в то, что podrí схвати писать ответ , и принимать ее как та, которая отвечает твой вопрос. Имей в виду, чем для тех, которые прочитают despué s, все má s выборы vá lidas, лучше. И в этот ответ, если ты sirvió ты можешь голосовать за нее. Я думаю, что это это более или менее, что предлагает и воодушевляет в SO. – porloscerros Ψ 09.11.2019, 03:16

Теги

Похожие вопросы