#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. Похоже, это объясняет спасибо за вашу помощь