当我从命令行运行php artisan basset --tidy-up
时,我收到了正在进行的错误异常。
[ErrorException]
array_keys() expects parameter 1 to be array, object given
basset [--delete-manifest] [--tidy-up]
我很遗憾在网上找到任何细节。
答案 0 :(得分:0)
虽然我没有使用过Basset,但是这个错误的原因是你为array_keys的第一个参数传入了一个对象,而不是一个数组。
例如,我是否有如下数组:
$myGreatArray = array('first' => 'foo', 'bar' => 'sup');
然后将其传递给数组键:
print_r(array_keys($myGreatArray));
我将此作为输出:
Array
(
[0] => first
[1] => bar
)
但是,我不能对一个对象做同样的事情,即使它的结构方式相同。
换句话说,我们不能做这样的事情(不仅仅是因为你需要var_dump对象,还因为你需要将数组传递给array_keys()):
$myGreatArray = new stdClass;
$myGreatArray->first = 'foo';
$myGreatArray->bar = 'sup';
print_r(array_keys($myGreatArray));
您会收到类似于您所看到的错误,但您看到的内容似乎是由Basset处理的exception格式。从命令行以外的位置运行脚本时,您也可以看到它,具体取决于您的error reporting级别。
编辑:
我刚刚提取了Basset's command line script的来源,看起来你在line 120上收到了错误,内容如下:
$collections = array_keys($this->environment->all()) + array_keys($this->manifest->all());
您可能想要检查清单和环境的结构方式。