简体   繁体   English

更新用户资料 Laravel

[英]Update user profile Laravel

I have a problem, I cannot update the user profile, when I press "submit" I will get an expired page, how can I solve it?我有一个问题,我无法更新用户资料,当我按“提交”时,我会收到一个过期的页面,我该如何解决?

My form:我的表格:

<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>

My route:我的路线:

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

And my UserController:还有我的 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();
}  

I tried different methods through topics but failed, what do you think is the problem?我通过主题尝试了不同的方法但都失败了,您认为是什么问题? Maybe because of how I defined view or because of the route?也许是因为我如何定义视图或因为路线?

Put @CSRF in your form.@CSRF放入您的表单中。 Like so:像这样:

<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>

See this: https://laravel.com/docs/5.8/csrf看到这个: https : //laravel.com/docs/5.8/csrf

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM