如何使Laravel 4或5忽略PHP通知(如未定义的变量通知)并且不会因为简单的'未定义的索引或变量'PHP通知而破坏整个应用程序?
我可以在Laravel 3上设置config / error.php中的'ignore'数组。但我无法在Laravel 4或5中找到如何做到这一点。
答案 0 :(得分:10)
此行为是由于将错误报告设置为-1。这是Laravel的默认行为 - 如果您使用Laravel 4,请参阅vendor/laravel/framework/src/illuminate/Foundation/start.php
中的第14行;如果您使用的是Laravel 5,请参阅vendor/laravel/framework/src/illuminate/Foundation/Bootstrap/HandleExceptions.php
中的第29行:
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
答案 1 :(得分:8)
在Laravel 5.1中,您可以将error_reporting(0)
或任何您想要的内容添加到\ app \ Providers \ AppServiceProvider.php boot()方法
答案 2 :(得分:-1)
对于laravel 5.0评论后面的行
throw new ErrorException($message, 0, $level, $file, $line);
在
vendor / laravel / framework / src / Illuminate / Foundation / Bootstrap / HandleExceptions.php