【问题标题】:Laravel 3 - PHP Warning: in_array() expects parameter 2 to be arrayLaravel 3 - PHP 警告:in_array() 期望参数 2 是数组
【发布时间】:2013-08-30 17:45:51
【问题描述】:

我正在使用不是我编写的代码。这是一个 Laravel 3 应用程序,它给了我以下错误:

PHP 警告:in_array() 期望参数 2 是数组,在第 87 行的 /Users/use/Documents/project/laravel/error.php 中给出了 null

你能告诉我如何调试它吗?它在包含在框架中的文件中给出错误。我也使用 php 的内置服务器来运行应用程序。这会导致问题吗?任何指针都有帮助。

PS:我在 Mac 上。

【问题讨论】:

  • P.S.:有一个错误参考:Reference - What does this error mean in PHP? - 我会使用像 xdebug 这样的步进调试器来检查它,这样您就可以更轻松地逆向工程,为什么 NULL 会出现在那里。
  • 你能提供project/laravel/error.php on line 87的代码吗?它基本上表明其中一个参数是NULL
  • 年轻学生所说的......你可以输入像 in_array($string, (array)$secondVar); 这样的值解决问题
  • @hendr1x:这消除了症状,但它没有引起原因。
  • 事实上这是在 Laravel 的错误系统中,我怀疑它没有正确安装在你的机器上。尝试遵循安装指南(或新的),看看是否可以为您清除错误。

标签: php laravel apache laravel-3


【解决方案1】:

大部分错误是关于参数定义错误。

例如有时编码器写

protected $guarded = 'title';

而不是

protected $guarded = ['title'];

这就是问题所在

【讨论】:

    【解决方案2】:

    如果您正在使用 composer 并且在重新签出项目后尚未安装所需的文件,您也可以获得此功能。解决方法:

    $ composer install

    或类似的。要真正了解这些信息,我必须在第 87 行附近的 error.php 文件中 throw $exception,然后我在 Apache 错误日志中看到了原因。

    【讨论】:

      【解决方案3】:

      查看源代码后,您似乎从这个文件中得到了错误:

      // laravel/error.php
      // line 86
      if (in_array($code, Config::get('error.ignore')))
      {
          return static::log($exception);
      }
      

      该方法似乎正在寻找 error.ignore 配置变量:

      // application/config/error.php
      // line 16
      'ignore' => array(),
      

      检查 application/config/error.php 文件,确保 'ignore' 设置为一个数组。如果它已经存在,那么您可能在损坏阵列的其他配置文件之一中有错误。

      希望这有助于并显示您在追踪错误来源时可以采取的步骤。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-08-26
        • 2021-03-27
        • 2016-03-23
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-12-17
        • 1970-01-01
        相关资源
        最近更新 更多