当我在 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 '100' 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 中验证 RESTful API?