【问题标题】:Dont show logout Anyway无论如何都不显示注销
【发布时间】:2018-06-13 20:21:56
【问题描述】:

我有一个 Laravel 项目。当我登录网站并将用户重定向到主页时,我想将登录图标更改为注销,但它不起作用。

这是我的刀片:

@if(Auth::user())
    <a href="{{ url('/logout') }}" class="navbar-brand">
        <span class="glyphicon glyphicon-log-out" data-toggle="tooltip" data-placement="bottom" title="Logout"></span>
    </a>
@else
    <a href="{{ url('/signin') }}" class="navbar-brand">
        <span class="glyphicon glyphicon-user" data-toggle="tooltip" data-placement="bottom" title="Login"></span>
    </a>
@endif

这是我的控制器:

$data = Input::except(array('_token','signin'));

if(Auth::attempt($data)) {
    return redirect('/');
} else {
    return redirect('/login')->with('loginstatus','user not found!');
}

【问题讨论】:

  • 我测试你的代码,对我来说没问题!请解释更多
  • php artisan cache:clear
  • 我不知道我很困惑。我不工作......也许是你有我没有的东西......可能吗?
  • 登录后手动输入 /logout 时显示此错误 [Route [login] not defined.]
  • 那你的路线是什么样子的?编辑:看起来你应该在控制器中使用/signin,如果这是你的路由正在使用的,就像在刀片中一样。

标签: php html laravel


【解决方案1】:

默认 laravel 注销路由使用 POST 方法,但您的代码使用的是 GET 方法,您应该像这样更新您的代码,

@if(Auth::user())
    <a href="{{ url('/logout') }}" class="navbar-brand"  onclick="event.preventDefault();
                                                         document.getElementById('logout-form').submit();">
        <span class="glyphicon glyphicon-log-out" data-toggle="tooltip" data-placement="bottom" title="Logout"></span>
    </a>
    <form id="logout-form" action="{{ url('/logout') }}" method="POST" style="display: none;">
                                    {{ csrf_field() }}
                                </form>
    @else
        <a href="{{ url('/signin') }}" class="navbar-brand">
            <span class="glyphicon glyphicon-user" data-toggle="tooltip" data-placement="bottom" title="Login"></span>
        </a>

@endif

希望对你有帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-03-07
    • 2017-10-30
    • 2017-12-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多