当前位置: 首页 > 知识库问答 >
问题:

yii2 gridview count():参数必须是一个数组或一个实现可数PHP 7.2的对象

梁丘弘
2023-03-14

错误:

Countable():参数必须是实现可数的数组或对象

错误来自\vendor\yiisoft\yii2\helpers\BaseHtml.php(第1302行)

 $content = Html::tag('tr', implode('', $cells), $this->headerRowOptions);

它调用:供应商\yiisoft\yii2\Helers\BaseHtml.php(第150行)

$html = "<$name" . static::renderTagAttributes($options) . '>'

这反过来又要求:

if (count($attributes) > 1) { ...

(也在同一文件中)

问题是:这个错误的来源是什么,它是如何修复/避免的?

答案包括在内,如下所示。。。问题的原因不是很直观。

添加此问题的唯一目的是帮助使用yii2和升级到php7.2时可能遇到类似问题的其他人

共有1个答案

秦宏盛
2023-03-14

本例中出现问题的原因是gridview中的属性“headerRowOptions”是由匿名函数设置的:

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

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

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

希望这能帮助处于类似情况的人。

 类似资料: