【问题标题】:yii2 gridview count(): Parameter must be an array or an object that implements Countable php 7.2yii2 gridview count():参数必须是实现Countable php 7.2的数组或者对象
【发布时间】:2019-04-29 06:15:34
【问题描述】:

错误:

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

【问题讨论】:

    标签: php gridview count yii2 kartik-v


    【解决方案1】:

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

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

    更改为数组后,错误消失,一切正常:

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

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

    【讨论】:

    • 还是有问题,因为我希望 headerRowOptions 是一个函数
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-08-03
    • 2019-01-06
    • 2018-06-28
    • 2018-06-08
    • 2018-09-22
    • 1970-01-01
    • 2020-04-27
    相关资源
    最近更新 更多