Dans Twig, vérifiez si la clé d'un tableau existe
En PHP, nous pouvons vérifier si une clé existe dans un tableau en utilisant la fonction array_key_exists()
.
dans le langage des Templiers de brindilles, nous pouvons vérifier si une variable ou la propriété d'un objet existe simplement en utilisant une déclaration if
, comme ceci:
{% if app.user %}
do something here
{% else %}
do something else
{% endif %}
mais comment vérifier si une clé d'un tableau existe en utilisant Twig? J'ai essayé {% if array.key %}
, mais il me donne une erreur:
Key "key" for array with keys "0, 1, 2, 3...648" does not exist
As une des principales façons de passer des données dans un modèle est d'utiliser des tableaux, il semble qu'il devrait y avoir un moyen de le faire. Toutes les pensées?
53
demandé sur
dreftymac
2012-11-28 18:21:33
3 réponses
exemple de brindille:
{% if array.key is defined %}
// do something
{% else %}
// do something else
{% endif %}
135
répondu
phpisuber01
2012-11-28 14:29:20
vous pouvez utiliser la keys
fonction de brindille
{% if myVar in someOtherArray|keys %}
13
répondu
Samir Patel
2017-01-23 21:23:06
Quick Answer (TL;DR)
- DeveloperTLindel veut tester l'existence de la clé de réseau dans la brindille.
- DeveloperTLindel veut détecter toute erreur associée à une clé non définie.
- peut être manipulé en utilisant le filtre
default
.
Réponse Détaillée
contexte
- Twig 2.x (dernière version en date du Mer) 2017-03-08)
- Utilisation générale du filtre
default
.
problème
- scénario:
- DeveloperTLindel veut tester l'existence de la clé de tableau dans la brindille.
- DeveloperTLindel veut éviter toute erreur ou Exception causée par une clé potentiellement non définie.
Solution
- DeveloperTLindel peut utiliser le filtre
default
. - le filtre
default
capte toutes les exceptions dues à une variable non définie, et permet une substitution de court-circuit d'une valeur alternative. - le filtre
default
est raccordable.
Example01
{#- **************************************** testing for a single key in associative array -#} {%- set mystring = myarray['key-no-existo'] |default('__BLANK__') -%} {#- **************************************** testing for a multiple keys in associative array -#} {%- set mystring = myarray['alpha'] |default(myarray['bravo']) |default(myarray['charlie']) |default('__BLANK__') -%}
Voir aussi
1
répondu
dreftymac
2017-05-23 12:10:32