view在登录时不会改变,但在注册后会改变

view doesn't change when login, but change after registering

我目前在主页登录时遇到问题(我从 w3layout 获得了模板来练习)。

我正在使用默认中间件(来宾、用户)进行身份验证。

我注册后,auth:check() 起作用了,在主页上只显示注销link。

但是当我尝试登录时,登录弹出模式仍然在主视图中。

我目前是 laravel 的新手。

希望你能帮助我:D

我的路线

Route::get('/', function () {
    return view('mainpage');
});
Route::get('/mail',function(){
    return view('mail');
});
Route::group(['prefix'=>'user'],function(){
    Route::group(['middleware' => 'guest'], function() {
        Route::post('/register',[
            'uses'=>'UserController@postSignup',
            'as'=>'signup',
        ]);
        Route::post('/login',[
            'uses'=>'UserController@postSignin',
            'as'=>'signin',
        ]);
    });
    Route::group(['middleware' => 'auth'], function() {
        Route::get('/logout',[
            'uses'=>'UserController@getLogout',
            'as'=>'logout',
        ]);
    });
});

我的用户控制器

public function postSignup(Request $request){
    $this->validate($request,[
        'name'=>'required',
        'email'=>'email|required|unique:users',
        'password'=>'required|min:4',
        'birthday'=>'required',
        'address'=>'required',
    ]);

    $user = new User([
        'name'=>$request->input('name'),
        'email'=>$request->input('email'),
        'password'=>bcrypt($request->input('password')),
        'birthday'=>$request->input('birthday'),
        'address'=>$request->input('address'),
    ]);
    $user->save();
    Auth::login($user);
    return redirect()->back();
}
public function postSignin(Request $request){
    $this->validate($request,[
        'email'=>'email|required|unique:users',
        'password'=>'required|min:4',
    ]);
    if (Auth::attempt(['email' => $request->input('email'), 'password' => $request->input('password')])) {
        return redirect()->back();
    }
    return redirect()->back();
}
public function getLogout(){
    Auth::logout();
    return redirect()->back();
}

并在主页中

@if(\Illuminate\Support\Facades\Auth::check())
    <div><a href="{{route('logout')}}">LOG OUT</a></div>
@else
    <div class="w3l_login">
        <a href="#" data-toggle="modal" data-target="#myModal88"><span class="glyphicon glyphicon-user" aria-hidden="true"></span></a>
    </div>
    <div class="modal fade" id="myModal88" tabindex="-1" role="dialog" aria-labelledby="myModal88" aria-hidden="true">
        <div class="modal-dialog modal-lg">
            <div class="modal-content">
                <div class="modal-header">
                    <button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button>
                    <h4 class="modal-title" id="myModalLabel">Don't Wait, Login now!</h4>
                </div>
                <div class="modal-body modal-body-sub">
                    <div class="row">
                        <div class="col-md-8 modal_body_left modal_body_left1" style="border-right: 1px dotted #C2C2C2;padding-right:3em;">
                            <div class="sap_tabs">
                                <div id="horizontalTab" style="display: block; width: 100%; margin: 0px;">
                                    <ul>
                                        <li class="resp-tab-item" aria-controls="tab_item-0"><span>Sign in</span></li>
                                        <li class="resp-tab-item" aria-controls="tab_item-1"><span>Sign up</span></li>
                                    </ul>
                                    <div class="tab-1 resp-tab-content" aria-labelledby="tab_item-0">
                                        <div class="facts">
                                            <div class="register">
                                                <form action="{{route('signin')}}" method="post">
                                                    <input name="email" placeholder="Email Address" type="text" required="">
                                                    <input name="password" placeholder="Password" type="password" required="">
                                                    <div class="sign-up"><input type="submit"/>{{csrf_field()}}</div>
                                                </form>
                                            </div>
                                        </div>
                                    </div>
                                    <div class="tab-2 resp-tab-content" aria-labelledby="tab_item-1">
                                        <div class="facts">
                                            <div class="register">
                                                <form action="{{route('signup')}}" method="post">
                                                    <input placeholder="Name" name="name" type="text" required="">
                                                    <input placeholder="Email Address" name="email" type="email" required="">
                                                    <input placeholder="Password" name="password" type="password" required="">
                                                    <input placeholder="Confirm Password" name="password" type="password" required="">
                                                    <input placeholder="Birthday" name="birthday" type="text" required="">
                                                    <input placeholder="Address" name="address" type="text" required="">
                                                    @if(count($errors)>0)
                                                           <div class="alert alert-danger">
                                                           @foreach($errors->all() as $error))
                                                            <p>{{$error}}</p>
                                                           @endforeach
                                                          </div>
                                                    @endif
                                                    <div class="sign-up">
                                                        <input type="submit"/>
                                                        {{csrf_field()}}
                                                    </div>
                                                </form>
                                            </div>
                                        </div>
                                    </div>
                                </div>
                            </div>
                            <div id="OR" class="hidden-xs">OR</div>
                        </div>
                        <div class="col-md-4 modal_body_right modal_body_right1">
                            <div class="row text-center sign-with">
                                <div class="col-md-12">
                                    <h3 class="other-nw">Sign in with</h3>
                                </div>
                                <div class="col-md-12">
                                    <ul class="social">
                                        <li class="social_facebook"><a href="#" class="entypo-facebook"></a></li>
                                        <li class="social_dribbble"><a href="#" class="entypo-dribbble"></a></li>
                                        <li class="social_twitter"><a href="#" class="entypo-twitter"></a></li>
                                        <li class="social_behance"><a href="#" class="entypo-behance"></a></li>
                                    </ul>
                                </div>
                            </div>
                        </div>
                    </div>
                </div>
            </div>
        </div>
    </div>
@endif

您应该在登录后指定您的重定向路由。 如果你使用redirect()->back(),它肯定会显示那个模态。

你可以试试:

return redirect('your_route_name');
or return redirect()->route('route_name'); 
or return redirect()->action('Controller@Action');

https://laravel.com/docs/5.5/redirects

也许问题出在验证中?

public function postSignin(Request $request){
$this->validate($request,[
    'email'=>'email|required|unique:users',

现有电子邮件的验证失败。 试一试:

    'email'=>'email|required',