Выдает ошибку при попытке отредактировать вложенную страницу в Grav

#php #grav

#php #grav

Вопрос:

Всякий раз, когда я пытаюсь добавить или отредактировать вложенную страницу (т. Е. дочернюю страницу главной страницы),

Я получаю эту ошибку:

count(): параметр должен быть массивом или объектом, который реализует Countable

Нарушающая строка:

 <div data-grav-array-type="container"{% if field.value_only %} 
     data-grav-array-mode="value_only"{% endif %}
     {{ value|length <= 1 ? ' class="one-child"' : '' }}>
  

Это происходит в: /grav/templates/forms/fields/array/array.html.twig .

Я недостаточно знаком с Grav, чтобы понять стек и отладить его.

Ответ №1:

Похоже, что вы обновились до PHP 7.2. PHP изменил поведение count() в следующем RFC: https://wiki.php.net/rfc/counting_non_countables

С тех пор вызов count() с параметром, который является скалярным, нулевым или объектом, который не реализует Countable, вызывает предупреждение PHP, подобное Warning: count(): параметр должен быть массивом или объектом, который реализует Countable в %s в строке %d.

Таким образом, начиная с PHP 7.2 это будет рассматриваться как ошибка в коде.

Примеры:

https://github.com/twigphp/Twig/blob/2.x/lib/Twig/Node/Module.php#L370
https://github.com/twigphp/Twig/blob/2.x/lib/Twig/Extension/Core.php#L1117

Возможно, вы захотите использовать length() или попытаться преобразовать вашу переменную в iterable

Комментарии:

1. Я связался со своим хостинг-провайдером, и они обновили с 7.0.6 до 7.2. Похоже, это объясняет спасибо за вашу помощь