[英]count(): Parameter must be an array or an object that implements Countable in Yii2
[英]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.