yii2 gridview count (): параметр должен быть массивом или объектом, который реализует Countable php 7.2 - PullRequest
0 голосов
/ 27 ноября 2018

Ошибка:

count (): Параметр должен быть массивом или объектом, реализующим счетное значение

Ошибка поступает от \ 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 голосов
/ 27 ноября 2018

Причиной проблемы в этом случае было то, что в gridview свойство 'headerRowOptions' было установлено анонимной функцией:

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

При изменении на массив ошибка исчезла, и все работалокак и ожидалось:

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

Надеюсь, это поможет кому-то в подобной ситуации.

...