Laravel中的默认身份验证功能无效,注销功能无法显示

时间:2015-12-31 07:35:56

标签: php laravel laravel-5 blade laravel-5.2

 @if (Auth::guest())
                    <li><a href="{{ url('/login') }}">Login</a></li>
                    <li><a href="{{ url('/register') }}">Register</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="{{ url('/logout') }}"><i class="fa fa-btn fa-sign-out"></i>Logout</a></li>
                        </ul>
                    </li>
                @endif

这是运行命令后的自动生成代码:php artisan make:auth 在生成文件并为数据库设置之后,它可以让我注册并登录。 但是在登录或注册后它无法显示注销按钮。上面的代码是检查会话是否有任何用户。如果没有用户登录,那么它将出现在网站右侧的登录和注册按钮。像这样:主页的默认值 -

Main Page

但是一切都保持不变,我可以找出错误的部分。Auth::check() Auth::user()这两个我已经尝试了,但它仍然没有用。有人有解决方案吗?

1 个答案:

答案 0 :(得分:2)

如果在添加Auth脚手架后这都是默认值,则必须调整路线。

您需要将 web 中间件组应用于您将使用该布局的任何路线。您可以将它们移动到使用“网络”中间件的Route::group

Route::group(['middleware' => ['web']], function () {
    Route::get('/', function () {
        return view('welcome');
    });        
});

此网络群组为您提供Auth正在使用的会话。