php - Getting error when trying to edit subpage in Grav ← (PHP, HTML)
Whenever I try to add or edit a subpage (i.e. a child page of the main page),
I am getting this error:
count(): Parameter must be an array or an object that implements Countable
Offending line is:
<div data-grav-array-type="container"{% if field.value_only %}
data-grav-array-mode="value_only"{% endif %}
{{ value|length <= 1 ? ' class="one-child"' : '' }}>
This is happening in: /grav/templates/forms/fields/array/array.html.twig
.
I'm not familiar enough with Grav to understand the stack and debug it.
Answer
Solution: It looks like you upgrade to PHP 7.2. PHP changed count() behavior in the following RFC: https://wiki.php.net/rfc/counting_non_countables
Since then, calling count() with a parameter that is a scalar, null, or an object that doesn't implement Countable raises PHP warning like Warning: count(): Parameter must be an array or an object that implements Countable in %s on line %d.
Thus, since PHP 7.2 this will be considered as a bug in the code.
Examples:
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
You may want to use length() or try to convert your variable to iterable
Source
See also:
About the technologies asked in this question PHP PHP (from the English Hypertext Preprocessor - hypertext preprocessor) is a scripting programming language for developing web applications. Supported by most hosting providers, it is one of the most popular tools for creating dynamic websites.
The PHP scripting language has gained wide popularity due to its processing speed, simplicity, cross-platform, functionality and distribution of source codes under its own license.https://www.php.net/
HTML HTML (English "hyper text markup language" - hypertext markup language) is a special markup language that is used to create sites on the Internet.
Browsers understand html perfectly and can interpret it in an understandable way. In general, any page on the site is html-code, which the browser translates into a user-friendly form. By the way, the code of any page is available to everyone.https://www.w3.org/html/
Welcome to programmierfrage.com
programmierfrage.com is a question and answer site for professional web developers, programming enthusiasts and website builders. Site created and operated by the community. Together with you, we create a free library of detailed answers to any question on programming, web development, website creation and website administration.
Get answers to specific questions
Ask about the real problem you are facing. Describe in detail what you are doing and what you want to achieve.
Help Others Solve Their Issues
Our goal is to create a strong community in which everyone will support each other. If you find a question and know the answer to it, help others with your knowledge.