如何让 Laravel 4 或 5 忽略 PHP 通知(如未定义变量通知),而不是仅仅因为一个简单的“未定义索引或变量”PHP 通知而破坏整个应用程序?
我可以在 Laravel 3 上在 config/error.php 中设置一个“忽略”数组。但我在 Laravel 4 或 5 中找不到如何做到这一点。
此行为是由于将错误报告设置为 -1。这是 Laravel 的默认行为 -vendor/laravel/framework/src/illuminate/Foundation/start.php
如果您使用的是 Laravel 4,请参阅第 14 行,如果您使用的是 Laravel 5,请参阅第 29 行vendor/laravel/framework/src/illuminate/Foundation/Bootstrap/HandleExceptions.php
:
error_reporting(-1); // Reports everything
Laravel 的错误处理程序尊重您的error_reporting
级别,并且会忽略您告诉 PHP 不要报告的任何错误。值得一提的是,更改错误报告级别并不是一个好主意。但是要覆盖前面的指令,您可以在app/start/global.php
(在 Laravel 4 中)或app/bootstrap/app.php
(在 Laravel 5 中)添加错误报告首选项
error_reporting(E_ALL ^ E_NOTICE); // Ignores notices and reports all other kinds
同样,这不是解决方案。这只是你所要求的。所有和任何错误、警告、通知等都可以而且应该得到修复。
您可以在此处查看错误报告的所有常量:http ://www.php.net/manual/en/errorfunc.constants.php
您可以在此处获取有关如何使用 error_reporting 的更多信息:http: //php.net/manual/en/function.error-reporting.php
In Laravel 5.1 you can add error_reporting(0)
or whatever you want into \app\Providers\AppServiceProvider.php boot() method