这似乎是一个非常非常基本的问题需要解决但我无法解决。上次我使用laravel就像8个月前一样,有一些东西现在没有用这个基本的Login-Auth东西。
我正在使用laravel 5.2,这是我的登录信息:
ROUTE:
Route::post('login', [
'as' => 'post_login',
'uses' => 'Auth\AuthController@login'
]);
验证\ 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';
}
}
当我与注册用户登录时,它会正确地向我显示用户,因为现在每个人都很完美。
但是,问题是在主菜单中我看不到用户名而不是“登录” - “注册”按钮。即使我单击其中一个按钮,也没有任何反应,视图不会改变也不会做任何事情。
我的主菜单标记:
<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 :: guest())......它不能正常工作,即使我登录,我也可以看到登录和注册按钮,当我点击它们时没有任何反应。我甚至无法退出。
修改
我的欢迎页面中有这个标记,这是用户登录后应该看到的页面。
@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 :(得分:1)
您的Welcome
路由也需要位于您的网络中间件中。对 laravel 5.2 的更改意味着仅在该网络中间件中调用/运行会话。
因此,如果{<1}}不在网络中间件中,您将无法登录。(Matt有关此更改的良好链接here)