繁体   English   中英

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

[英]yii2 gridview count(): Parameter must be an array or an object that implements Countable php 7.2

错误:

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时可能遇到类似的问题

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

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

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM