Je veux compter le nombre de valeurs de champ illimité dans un rameau tempalate j'ai essayé
{{ node.field_mytext.count }}
=> face à l'erreur
et dans un autre essai
{{ content.field_mytext.count }}
=> rien retourné
(dans cette méthode, j'ai vérifié que mon champ n'est pas dans le champ désactivé est le gestionnaire d'affichage).
Ma question est de savoir comment puis-je compter le nombre d'éléments d'un champ dans Twig?
J'espère que je fais face avec les solutions attendent ces solutions: D
- l'ajouter dans preprocess_node
- utiliser Twig Tweak
Réponses:
{{node.field_mytext.count}} => face à une erreur
Cela ne fonctionne pas, car la méthode
count
n'est pas autorisée dans les stratégies de brindille:{{content.field_mytext | longueur}}?
Cela ne fonctionne pas, car il
content
s'agit d'un tableau de rendu avec de nombreuses clés supplémentaires.Cela fonctionne: Convertir le champ en tableau et compter
la source
Le moyen le plus simple est d'obtenir le
['#items']|length
. Je le fais tout le temps pour compter les éléments pour voir plus d'instances et pour charger des curseurs.la source
J'ai utilisé ses propres filtres Twig pour prendre en charge les champs d'entité, avec cela, vous pouvez utiliser les champs comme des tableaux natifs:
ou
ou
Vous pouvez facilement ajouter vos propres filtres Twig via un module personnalisé. Vous pouvez en savoir plus ici: drupal.org/docs/8/creating-custom-modules . En bref, vous devez créer un répertoire de modules, par exemple
path/to/drupal/modules/custom/common/
, y mettrecommon.info.yml
avec la définition du module etcommon.services.yml
avec la définition du service (voir les commentaires dans le code) et mettre mon code dans/path/to/drupal/modules/custom/common/src/TwigExtension.php
.la source
Utiliser un filtre de longueur
la source