Quiero contar el número de valores de campo ilimitado en la plantilla de ramita que intenté
{{ node.field_mytext.count }}
=> ante un error
y en otro intento
{{ content.field_mytext.count }}
=> nada devuelto
(en este método verifiqué que mi campo no está en el campo deshabilitado es el administrador de visualización)
Mi pregunta es ¿cómo puedo contar la cantidad de elementos de un campo en Twig?
Espero enfrentarme con las soluciones que esperan estas soluciones: D
- agréguelo en preprocess_node
- utilizar Twig Tweak
Respuestas:
{{node.field_mytext.count}} => ante un error
Esto no funciona, porque el método
count
no está permitido en las políticas de ramitas:{{content.field_mytext | longitud }}?
Esto no funciona, porque
content
es una matriz de renderizado con muchas claves adicionales.Esto funciona: Convertir el campo en matriz y contar
fuente
La forma más fácil es obtener el
['#items']|length
. Lo hago todo el tiempo para contar elementos para ver más instancias y al cargar controles deslizantes.fuente
He usado filtros Twig propios para admitir campos de entidad, con esto puedes usar campos como matrices nativas:
o
o
Puede agregar fácilmente sus propios filtros Twig a través de un módulo personalizado. Puede obtener más información aquí: drupal.org/docs/8/creating-custom-modules . En resumen, debe crear un directorio de módulos, por ejemplo
path/to/drupal/modules/custom/common/
, ponerlo allícommon.info.yml
con definición de módulo ycommon.services.yml
con definición de servicio (ver comentarios en código) y poner mi código/path/to/drupal/modules/custom/common/src/TwigExtension.php
.fuente
Usar filtro de longitud
fuente