当我在 Laravel 5.2 中进行身份验证时,我无法访问关于页面

Posted

技术标签:

【中文标题】当我在 Laravel 5.2 中进行身份验证时,我无法访问关于页面【英文标题】:I cant access to about page when Im Authentified in Laravel 5.2 【发布时间】:2017-03-14 20:09:50 【问题描述】:

我的小问题会变得很大 好吧,我有 4 页

about.blade.php(每个人都可以访问)home.blade.php (安全页面需要认证) login.blade.php register.blde.php

我有布局:app.blade.php

我的 route.php 是这样的:

Route::get('/', function () 
    return view('welcome');
);

Route::get('/about', 'AboutController@index');

Route::auth();
Route::get('/home', 'HomeController@index');

我的 AboutController 是这样的:

<?php
namespace App\Http\Controllers;

use Illuminate\Http\Request;
use App\Http\Requests;

class AboutController extends Controller 

    public function __construct() 

    

   public function index() 
        $data = 'some text from index page';
        return view('pages.about', compact('data'));
    


我的布局是这样的:

            @if (Auth::gest())
                <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()->username  <span class="caret"></span>
                    </a>

                    <ul class="dropdown-menu" role="menu">
                        <li><a href=" url('/profile') ">Profile</a></li>
                        <li><a href=" url('/password') ">Change password</a></li>
                        <li class="divider"></li>
                        <li><a href=" url('/logout') "><i class="fa fa-btn fa-sign-out"></i>Logout</a></li>
                    </ul>
                </li>
            @endif

问题就在这里:我认为 Auth::gest() 在我经过身份验证后不起作用, 当我输入: $this->middleware('auth');在 about 的构造函数中,它可以工作,但我希望所有人都能访问此页面。

我在查看时收到此错误,但在 html 源代码中:

 <div id="sf-resetcontent" class="sf-reset">
                <h1>Whoops, looks like something went wrong.</h1>
                                        <h2 class="block_exception clear_fix">
                            <span class="exception_counter">1/1</span>
                            <span class="exception_title"><abbr title="Symfony\Component\Debug\Exception\FatalErrorException">FatalErrorException</abbr> in <a title="C:\wamp\www\laravel-lab\crud-app2\vendor\composer\ClassLoader.php line 314" ondblclick="var f=this.innerHTML;this.innerHTML=this.title;this.title=f;">ClassLoader.php line 314</a>:</span>
                            <span class="exception_message">Maximum function nesting level of &#039;100&#039; reached, aborting!</span>
                        </h2>
                        <div class="block">
                            <ol class="traces list_exception">
       <li> in <a title="C:\wamp\www\laravel-lab\crud-app2\vendor\composer\ClassLoader.php line 314" ondblclick="var f=this.innerHTML;this.innerHTML=this.title;this.title=f;">ClassLoader.php line 314</a></li>
       <li>at <abbr title="Symfony\Component\Debug\Exception\FatalErrorException">FatalErrorException</abbr>->__construct() in <a title="C:\wamp\www\laravel-lab\crud-app2\vendor\laravel\framework\src\Illuminate\Foundation\Bootstrap\HandleExceptions.php line 133" ondblclick="var f=this.innerHTML;this.innerHTML=this.title;this.title=f;">HandleExceptions.php line 133</a></li>
       <li>at <abbr title="Illuminate\Foundation\Bootstrap\HandleExceptions">HandleExceptions</abbr>->fatalExceptionFromError() in <a title="C:\wamp\www\laravel-lab\crud-app2\vendor\laravel\framework\src\Illuminate\Foundation\Bootstrap\HandleExceptions.php line 118" ondblclick="var f=this.innerHTML;this.innerHTML=this.title;this.title=f;">HandleExceptions.php line 118</a></li>
       <li>at <abbr title="Illuminate\Foundation\Bootstrap\HandleExceptions">HandleExceptions</abbr>->handleShutdown() in <a title="C:\wamp\www\laravel-lab\crud-app2\vendor\laravel\framework\src\Illuminate\Foundation\Bootstrap\HandleExceptions.php line 0" ondblclick="var f=this.inner

类似的东西,请帮忙??

非常感谢

【问题讨论】:

看起来该错误与 Composer 自动加载器有关。尝试运行composer dumpautoload 【参考方案1】:

我找到了解决方案:)

我认为是因为我的旧版本 PHP,我有 PHP 版本:5.5.12。

我看到那里的网站上 laravel 要求最低,所以我将我的 PHP VERSION 更改为 5.6.25 ,一切看起来都很好:)

【讨论】:

【参考方案2】:

这是我的 AboutController :

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use App\Http\Requests;

class AboutController extends Controller 
    public function __construct()
       //$this->middleware('auth');
        //$this->middleware('auth', ['except' => 'index']);
    
    public function index() 
        $data = 'Some data from About Controller';
        return view('pages.about', $data);
    

我的路线是这样的:

Route::get('/', function () 
    return view('welcome');
);

Route::auth();

Route::get('/home', 'HomeController@index');

Route::get('/about', 'AboutController@index');

我只在使用 php artisan make:auth 生成身份验证后添加这个 AboutController

所以当我尝试访问 http://localhost:8000/about 时,我会收到错误,就像您必须在此页面中使用中间件身份验证一样

【讨论】:

【参考方案3】:

你有一个错字(没有gest()方法),所以用guest()代替gest()

@if (Auth::guest())

【讨论】:

我还是有问题,我也试过 Auth::check() 是的,但这是另一个问题。请查看/storage/logs/laravel.log 的日志并告诉我您到底遇到了什么错误,然后我会为您提供帮助。 [2016-11-03 00:34:28] local.ERROR: 异常 'Symfony\Component\Debug\Exception\FatalErrorException' 与消息 '最大函数嵌套级别 '100' 达到,中止!在 C:\wamp\www\laravel-lab\crud-app3\vendor\laravel\framework\src\Illuminate\Foundation\AliasLoader.php:63 堆栈跟踪:#0 C:\wamp\www\laravel-lab\crud -app3\vendor\laravel\fra........

以上是关于当我在 Laravel 5.2 中进行身份验证时,我无法访问关于页面的主要内容,如果未能解决你的问题,请参考以下文章

身份验证问题 Laravel 5.2 登录仅在本地工作

在 laravel 5.2 中使用默认身份验证路由对用户进行身份验证后设置会话数据

如何在 Laravel 5.2 中验证 RESTful API?

中间件身份验证不适用于 Web Laravel 5.2

身份验证控制器中的 Laravel 5.2 Web 中间件导致 csrf 令牌不匹配

laravel 5.2 身份验证 - 缺少链接