ErrorException未定义的变量移至laravel helper函数后

时间:2019-06-28 16:04:47

标签: php laravel laravel-5 php-7.2

我有一个旧网站,该网站曾经是香草php。我迁移到laravel,将整个代码置于视图的“旧文件夹”下,并且我有一个包含很多功能的文件夹。

此时一切都很好。

为了更进一步,我将功能从视图内的文件夹移到了助手中。现在,我在代码库中到处都出现了一些类型的错误,我正在调试它们,但是它们很多,而且我不知道为什么现在而不是以前抛出它们。

例如,如果出现以下情况,则会引发错误:

  • 访问数组的未定义索引

    $ a = $ _GET ['a'];

  • 访问对象的未定义属性

    $ a = $ b-> c;

  • 我尝试将未设置的变量加入自身

    $ a。=“示例”;

  • 未设置变量上的foreach称为

  • 函数传递了未设置的可变性

这是我的路线/web.php

Route::get('{path?}', 'LegacyPagesController@show')->where('path', '.+');
Route::post('{path?}', 'LegacyPagesController@show')->where('path', '.+');

LegacyPagesController

public function show($path='index.php')
{
  ob_start();
  require(base_path('resources/views/legacy-pages/').$path);
  return ob_get_clean();
}

我已将辅助程序作为函数的无类集合放在App \ Helpers \ ExampleHelper.php中,并放在composer.json中

"autoload": {
    "files": [
        "app/Helpers/ExampleHelper.php",

我不确定这些错误是否与新助手有关,或者我的路由是否错误,或者是否可能涉及其他任何问题,例如php版本或php.ini配置。任何建议表示赞赏。

1 个答案:

答案 0 :(得分:1)

要删除您看到的错误消息,只需像这样更改error_reporting变量:

ini_set('error_reporting', E_ALL & ~E_STRICT);

建议将其打开并改正错误,因为确实是错误,php足够聪明,可以为您处理它们。 此answer显示了php小组推荐的设置。