Обновление профиля пользователя Laravel - PullRequest
2 голосов
/ 10 марта 2020

У меня проблема, я не могу обновить профиль пользователя, когда я нажимаю «отправить», я получаю страницу с истекшим сроком, как я могу ее решить?

Моя форма:

<form method="post" class ="tab-pane" id ="edit" action="{{route('profile')}}">
                    <div class="form-group row">
                        <label class="col-lg-3 col-form-label form-control-label">Email</label>
                        <div class="col-lg-9">
                            <input class="form-control" type="email" value={{$user->email}}>
                        </div>
                    </div>
                    <div class="form-group row">
                        <label class="col-lg-3 col-form-label form-control-label">About</label>
                        <div class="col-lg-9">
                            <input class="form-control" type="text" value={{$user->about}}>
                        </div>
                    </div>
                    <div class="form-group row">
                        <label class="col-lg-3 col-form-label form-control-label">Skills</label>
                        <div class="col-lg-9">
                            <input class="form-control" type="text" value={{$user->skills}}>
                        </div>
                    </div>
                    <div class="form-group row">
                        <label class="col-lg-3 col-form-label form-control-label">Hobbies</label>
                        <div class="col-lg-9">
                            <input class="form-control" type="text" value={{$user->hobbies}}>
                        </div>
                    </div>
                    <div class="form-group row">
                        <label class="col-lg-3 col-form-label form-control-label">Address</label>
                        <div class="col-lg-9">
                            <input class="form-control" type="text" value="" placeholder="Street">
                        </div>
                    </div>
                    <div class="form-group row">
                        <label class="col-lg-3 col-form-label form-control-label"></label>
                        <div class="col-lg-6">
                            <input class="form-control" type="text" value="" placeholder="City">
                        </div>
                        <div class="col-lg-3">
                            <input class="form-control" type="text" value="" placeholder="State">
                        </div>
                    </div>
                    <div class="form-group row">
                        <label class="col-lg-3 col-form-label form-control-label">Username</label>
                        <div class="col-lg-9">
                            <input class="form-control" type="text" value={{$user->name}}>
                        </div>
                    </div>
                    <div class="form-group row">
                        <label class="col-lg-3 col-form-label form-control-label">Password</label>
                        <div class="col-lg-9">
                            <input class="form-control" type="password" value={{$user->password}}>
                        </div>
                    </div>
                    <div class="form-group row">
                        <label class="col-lg-3 col-form-label form-control-label"></label>
                        <div class="col-lg-9">
                            <input type="reset" class="btn btn-secondary" value="Cancel">
                            <<button type="submit">submit</button>
                        </div>
                    </div>
                </form>
            </div>
        </div>

Мой маршрут:

Route::post('/profile', 'UserController@update_Profile');

И мой UserController:

public function update_Profile(User $user) {

    $this->validate(request(), [
        'name' => 'required',
        'email' => 'required|email|unique:users',
    ]);

    $user->name = Request::input('name');
    $user->email = Request::input('email');

    $user->save();
    Flash::message('Your account has been updated!');
    return back();
}  

Я пробовал разные методы в темах, но не удалось, в чем, по-твоему, проблема? Может из-за того, как я определил вид или из-за маршрута?

1 Ответ

4 голосов
/ 10 марта 2020

Положите @CSRF в вашей форме. Вот так:

<form method="post" class ="tab-pane" id ="edit" action="{{route('profile')}}">
                    @csrf
                    <div class="form-group row">
                        <label class="col-lg-3 col-form-label form-control-label">Email</label>
                        <div class="col-lg-9">
                            <input class="form-control" type="email" value={{$user->email}}>
                        </div>

                    </div>
...
...
</form>

Смотрите это: https://laravel.com/docs/5.8/csrf

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