yii2 gridview count():参数必须是实现Countable php 7.2的数组或对象

时间:2018-11-27 13:27:49

标签: php gridview count yii2 kartik-v

错误:

  

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

1 个答案:

答案 0 :(得分:0)

在这种情况下出现问题的原因是,在gridview中,属性“ headerRowOptions”是由匿名函数设置的:

'headerRowOptions' =>  function ($model, $key, $index, $grid) {
                    return ['style' => 'vertical-align: middle !important;'];
                },

更改为数组后,错误消失了,一切都按预期工作:

  'headerRowOptions' => ['style' => 'vertical-align: middle !important;'],

希望这对处于类似情况的人有所帮助。