Laravel 5.2 使用 Sentinel 2 - 已达到最大函数嵌套级别“100”,正在中止

Laravel 5.2 with Sentinel 2 - Maximum function nesting level of '100' reached, aborting

在我的 app.blade.php 基本模板中,我做了一个简单的检查以查看用户是否已登录。它看起来像这样:

@if (Sentinel::check())
    <li><a href="members.aspx">Members</a></li>
@else
    <li><a href="{{ url('/login') }}">Login</a></li>
    <li><a href="{{ url('/register') }}">Register</a></li>
@endif

这会触发 Maximum function nesting level of '100' reached, aborting。任何想法为什么。我在 app.php 中正确定义了提供者和外观。像这样:

'providers' => [
    ....
    Cartalyst\Sentinel\Laravel\SentinelServiceProvider::class,
    ....
],

'aliases' => [
    ....
    'Sentinel'  => Cartalyst\Sentinel\Laravel\Facades\Sentinel::class,
    ....
],

虽然我不能说出您为什么会收到此错误,但我可以告诉您如何解决它;您需要在 php.ini.

中编辑 xdebug.max_nesting_level

通常将此设置为 200 或 300 即可,并且通常只是在使用 xdebug 的本地开发中出现问题。

可以这样设置; xdebug.max_nesting_level=200xdebug.max_nesting_level=300.

有关此设置的更多信息,请参阅 xdebug 的 docs