尝试在 Grav 中编辑子页面时出错

Getting error when trying to edit subpage in Grav

每当我尝试添加或编辑子页面(即主页的子页面)时,

我收到这个错误:

count(): Parameter must be an array or an object that implements 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 不够熟悉,无法理解堆栈和调试它。

您似乎升级到了 PHP 7.2。 PHP 更改了以下 RFC 中的 count() 行为:https://wiki.php.net/rfc/counting_non_countables

从那时起,使用标量、null 或未实现 Countable 的对象调用 count() 会引发 PHP 警告,例如 Warning: count(): Parameter must be an array或在第 %d 行的 %s 中实现 Countable 的对象。

因此,自 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() 或尝试将您的变量转换为可迭代的