2016-03-03 136 views
1

这似乎是一个非常非常基本的问题来解决,但我一直无法。上次我使用laravel和8个月前一样,并且有些事情现在无法用这个基本的Login - Auth的东西运行。Laravel 5.2 - 登录和用户会话

我使用laravel 5.2,这里是我的登录名:

ROUTE:

Route::post('login', [ 
    'as' => 'post_login', 
    'uses' => 'Auth\[email protected]' 
]); 

验证\ AuthController.php:

public function login(Request $request) 
{ 
    if(Auth::attempt([ 
     'email' => $request->get('email'), 
     'password' => $request->get('password'), 
     'active' => 1 
     ])) 
    { 

     $user = Auth::user(); 

     var_dump($user); 

    } 
    else 
    { 
     return 'Could not log in'; 
    } 
} 

当我登录与一个注册用户,它显示我的用户正确,现在everyhting进行完美。

但问题是,在主菜单中,我看不到用户名而不是“登录” - “注册”按钮。即使我点击其中一个按钮,也没有任何反应,视图不会改变,并且什么也不做。

我的主菜单标记:

<nav class="navbar navbar-default"> 
     <div class="container"> 
      <div class="navbar-header"> 

       <!-- Collapsed Hamburger --> 
       <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#app-navbar-collapse"> 
        <span class="sr-only">Toggle Navigation</span> 
        <span class="icon-bar"></span> 
        <span class="icon-bar"></span> 
        <span class="icon-bar"></span> 
       </button> 

       <!-- Branding Image --> 
       <a class="navbar-brand" href="{{ url('/') }}"> 
        Fotopredio 
       </a> 
      </div> 

      <div class="collapse navbar-collapse" id="app-navbar-collapse"> 
       <!-- Left Side Of Navbar --> 
       <ul class="nav navbar-nav"> 
        <li><a href="{{ url('/home') }}">Home</a></li> 
       </ul> 

       <!-- Right Side Of Navbar --> 
       <ul class="nav navbar-nav navbar-right"> 
        <!-- Authentication Links --> 
        @if (Auth::guest()) 
         <li><a href="{{ route('login') }}">Login</a></li> 
         <li><a href="{{ route('registration') }}">Registro</a></li> 
        @else 
         <li class="dropdown"> 
          <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false"> 
           {{ Auth::user()->email }} <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 
       </ul> 
      </div> 
     </div> 
    </nav> 

你可以看到@if(AUTH ::客())...它不工作,甚至当我登录,我可以看到登录和注册按钮,当我点击它们时,没有任何反应。我甚至无法注销。

编辑

我有这个标记在我的欢迎页面,用户应该看到它在登录后的页面。

@extends('layouts.app') 
@section('title', 'Home') 
@section('body') 

<?php 
if (Auth::check()) { 
    echo "Loged In"; 
} else { 
    echo "not loged in"; 
} 
?> 
<div class="container"> 
    <div class="row"> 
     <div class="col-md-10 col-md-offset-1"> 
      <div class="panel panel-default"> 
       <div class="panel-heading">Welcome</div> 

       <div class="panel-body"> 
        Your Application's Landing Page. 
       </div> 
      </div> 
     </div> 
    </div> 
</div> 
@endsection 

即使以后我登录,它显示NOT LOGED IN

+0

尝试添加ELSEIF:后(认证用户()) if(Auth :: guest()) – Niall

+0

我要更新我的问题,以便您可以看到更多实际发生的事情 –

+0

@Niall正如您所看到的一直是POST方法(: –

回答

1

您的Welcome路由也需要在您的网络中间件。更改为laravel 5.2意味着会话仅在该网络中调用/运行中间件

所以,如果Welcome是不是在网络中间件,你会不会登录(Matt拥有这个变化here一个很好的链接)