Php Laravel 5.4身份验证::检查()错误

Php Laravel 5.4身份验证::检查()错误,php,laravel,authentication,middleware,Php,Laravel,Authentication,Middleware,我想用guest和auth函数创建索引页 当客人来访时,他们可以尝试登录;登录后,它将显示用户的信息,如用户名 Routeroutes/web.php: Route::get('vendor', function () { return view('vendor.home'); })->name('vendor')->middleware('web'); 在刀片模板中,我使用Auth::check()进行身份验证,但失败。如果我使用中间件(['web','Auth:vend

我想用guest和auth函数创建索引页

当客人来访时,他们可以尝试登录;登录后,它将显示用户的信息,如用户名

Route
routes/web.php:

Route::get('vendor', function () {
    return view('vendor.home');
})->name('vendor')->middleware('web');
在刀片模板中,我使用
Auth::check()
进行身份验证,但失败。如果我使用
中间件(['web','Auth:vendor']),
如果来宾将重定向到登录页面

@if(Auth::guest())
                    <li><a href="{{route('vendor.login')}}"> <strong><i class="fa fa-user"></i> Login </strong> </a></li>
                    <li><a href="{{route('vendor.register')}}" class="btn btn-primary oval btn-lg"> <strong>Register</strong> </a></li>
                @else
                    <li class="dropdown">
                        <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">
                            {{ Auth::user()->name }} <span class="caret"></span>
                        </a>

                        <ul class="dropdown-menu" role="menu">
                            <li>
                                <a href="{{ route('vendor.logout') }}" class="btn btn-default btn-flat">Log Out</a>
                            </li>
                        </ul>
                    </li>
                @endif
                    {{ dd(Auth::check()) }}
@if(Auth::guest())
  • @否则
  • @恩迪夫 {{dd(Auth::check())}
    每次我成功登录时,刷新索引页后,它仍然会显示登录按钮而不是用户名按钮

    这个结果

    尝试用
    \Auth::
    Auth()替换
    Auth::

    @if(\Auth::guest())
    
  • @否则
  • @恩迪夫 {{dd(\Auth::user())}
    这是我的答案

    @if(Auth::guard('vendor')->check())
                        <li class="dropdown">
                            <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">
                                {{ Auth::guard('vendor')->user()->name }} <span class="caret"></span>
                            </a>
    
                            <ul class="dropdown-menu" role="menu">
                                <li>
                                    <a href="{{ route('vendor.dashboard') }}">Dashboard</a>
                                </li>
                                <li>
                                    <a href="{{ route('vendor.logout') }}" >Log Out</a>
                                </li>
                            </ul>
                        </li>
                    @else
                        <li><a href="{{route('vendor.login')}}"> <strong><i class="fa fa-lock"></i> Login </strong> </a></li>
                        <li><a href="{{route('vendor.register')}}" class="btn btn-success btn-lg"> <strong>Register</strong> </a></li>
                    @endif
    
    @if(Auth::guard('vendor')->check())
    
  • @否则
  • @恩迪夫
    根据您的版本,您可以使用
    @guest@endguest
    @auth@刀片服务器中的endauth
    @guest
    @auth
    不工作您必须在路由上添加中间件auth如果我在
    ->中间件(['web','auth'])上添加中间件auth
    guest将删除,结果为空use
    auth()->user()
    是否也返回空?您需要从控制器再次检查。请尝试
    \Auth::check()
    \Auth::user()
    返回实际登录的用户
    \Auth::check()
    检查用户是否已登录且有效。如果我使用
    $this->中间件('Auth:vendor')在构造Auth::user()中工作,但来宾将重定向到登录。我没有去
    
    @if(Auth::guard('vendor')->check())
                        <li class="dropdown">
                            <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">
                                {{ Auth::guard('vendor')->user()->name }} <span class="caret"></span>
                            </a>
    
                            <ul class="dropdown-menu" role="menu">
                                <li>
                                    <a href="{{ route('vendor.dashboard') }}">Dashboard</a>
                                </li>
                                <li>
                                    <a href="{{ route('vendor.logout') }}" >Log Out</a>
                                </li>
                            </ul>
                        </li>
                    @else
                        <li><a href="{{route('vendor.login')}}"> <strong><i class="fa fa-lock"></i> Login </strong> </a></li>
                        <li><a href="{{route('vendor.register')}}" class="btn btn-success btn-lg"> <strong>Register</strong> </a></li>
                    @endif