我已关注Laravel 5.3 upgrade guide,即在unauthenticated
中添加App\Exceptions\Handler
方法。
但是,当Auth系统调用它时,我收到以下错误:
Handler.php第59行中的FatalThrowableError: 类型错误:传递给App \ Exceptions \ Handler :: unauthenticated()的参数2必须是App \ Exceptions \ AuthenticationException的实例,给出Illuminate \ Auth \ AuthenticationException的实例,在/ Users / Username / Development / ProjectName / vendor /中调用第135行的laravel / framework / src / Illuminate / Foundation / Exceptions / Handler.php
我一直在寻找最后半小时但找不到解决方案。
任何帮助?
答案 0 :(得分:2)
检查Handler.php文件与5.3分支版本的比较:https://github.com/laravel/laravel/blob/5.3/app/Exceptions/Handler.php
请注意Handler.php中的unauthenticated()方法需要\Illuminate\Auth\AuthenticationException
的实例。确保use Illuminate\Auth\AuthenticationException;
包含在文件顶部。
答案 1 :(得分:0)
就我而言,我只是删除了糟糕...或恢复默认的Handler.php
答案 2 :(得分:0)
我在从 Laravel 5.2 升级到 5.3 时遇到了这个 Error 500
莫名其妙的问题。 storage/logs
中没有 laravel 错误日志,也没有 Apache 错误日志。 .env
没有问题,调试已打开,没有损坏的 .htaccess
指令,此外 php artisan
无法运行。尝试了一切,直到我查看 PHP 错误日志并发现:
PHP Fatal error: Uncaught Error: Undefined constant 'Illuminate\Auth\AuthenticationException' in C:\code\laravel-project\vendor\laravel\framework\src\Illuminate\Container\Container.php:79
所以我按照@jon 的建议做了,并将我的 Handler.php 文件与新的 laravel 文件进行了比较,发现了这一点:
在您的 App/Exceptions/Handler.php 中,确保 $dontreport
数组中的类被引用为引号中的任一字符串:
'\Illuminate\Auth\AuthenticationException',
'\Illuminate\Auth\Access\AuthorizationException',
'\Symfony\Component\HttpKernel\Exception\HttpException',
'\Illuminate\Database\Eloquent\ModelNotFoundException',
'\Illuminate\Session\TokenMismatchException',
'\Illuminate\Validation\ValidationException',
或者这样:
\Illuminate\Auth\AuthenticationException::class,
\Illuminate\Auth\Access\AuthorizationException::class,
\Symfony\Component\HttpKernel\Exception\HttpException::class,
\Illuminate\Database\Eloquent\ModelNotFoundException::class,
\Illuminate\Session\TokenMismatchException::class,
\Illuminate\Validation\ValidationException::class,
出于某种原因,我发现我的没有去掉 Error 500
的引号和修正。