错误:
count():参数必须是实现Countable的数组或对象
错误来自\ vendor \ yiisoft \ yii2 \ helpers \ BaseHtml.php(第1302行)
$content = Html::tag('tr', implode('', $cells), $this->headerRowOptions);
它调用: vendor \ yiisoft \ yii2 \ helpers \ BaseHtml.php(第150行)
$html = "<$name" . static::renderTagAttributes($options) . '>'
依次调用:
if (count($attributes) > 1) { ...
(也位于同一文件中)
问题是:此错误的根源是什么?如何解决/避免该错误?
包括答案,并且在下面找到...问题的原因不是很直观。
添加此问题的唯一目的是帮助其他人使用yii2并遇到类似问题并升级到php 7.2
答案 0 :(得分:0)
在这种情况下出现问题的原因是,在gridview中,属性“ headerRowOptions”是由匿名函数设置的:
'headerRowOptions' => function ($model, $key, $index, $grid) {
return ['style' => 'vertical-align: middle !important;'];
},
更改为数组后,错误消失了,一切都按预期工作:
'headerRowOptions' => ['style' => 'vertical-align: middle !important;'],
希望这对处于类似情况的人有所帮助。