После редактирования сведений о пользователе при отправке необходимо перенаправить на страницу пользователя со свежими сведениями о редактировании

#laravel #routes #reload

#laravel #маршруты #перезагрузить

Вопрос:

я столкнулся с простой, но сложной проблемой маршрутизации! итак, я создаю приложение с помощью laravel, используя blade. Моя проблема проста: когда я редактирую данные пользователя, я перенаправляю на свою страницу пользователя, как я хочу, но информация не обновляется! как я могу это сделать? я перепробовал так много вещей, что больше не вижу, что не так!

Может кто-нибудь помочь мне понять мои ошибки? Спасибо! французский новичок 🙂

 <button type="submit" class="btn btn-outline-success btn-block"><a href="{{redirect()->route('users.show',['id'=>$user->id])}}"></a>Valider la modification</button>

  

Комментарии:

1. Удалить redirect()-> , но есть и другие проблемы, например, наличие <a> внутри button type="submit"

Ответ №1:

href Атрибут <a> внутри <button> имеет приоритет над атрибутом <form> ‘s action , поэтому ваше действие обновления никогда не вызывается. Вы должны выполнить перенаправление в своем действии маршрута, например, в контроллере:

 class UserController extends Controller
{
    // other actions

    public function update(Request $request, $id)
    {
        $user = User::find($id);
        $user->fill($request->all()); // Do not fill unvalidated data

        if (!$user->save()) {
            // Handle error

            // Redirect to the edit form while preserving the input
            return redirect()->back()->withInput();
        }

        // Redirect to the 'show' page on success
        return redirect()->route('users.show', ['id' => $user->id]);
    }

    // more actions
}
  

Затем ваша форма должна выглядеть примерно так:

 <form action="{{ route('user.update', ['id' => $user->id]) }}" method="POST">
    <!-- Use @method and @csrf depending on your route's HTTP verb and if you have CSRF protection enabled -->
    @method('PUT')
    @csrf
    <!-- Your form fields -->
    <button type="submit" class="btn btn-outline-success btn-block">
        Valider la modification
    </button>
</form>
  

Комментарии:

1. Большое вам спасибо, это работа, и я вижу свое непонимание!