13

如何让 Laravel 4 或 5 忽略 PHP 通知(如未定义变量通知),而不是仅仅因为一个简单的“未定义索引或变量”PHP 通知而破坏整个应用程序?

我可以在 Laravel 3 上在 config/error.php 中设置一个“忽略”数组。但我在 Laravel 4 或 5 中找不到如何做到这一点。

4

2 回答 2

14

此行为是由于将错误报告设置为 -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

于 2013-08-28T22:49:25.400 回答
12

In Laravel 5.1 you can add error_reporting(0) or whatever you want into \app\Providers\AppServiceProvider.php boot() method

于 2016-05-18T05:34:09.603 回答