В PHP мы можем проверить, существует ли ключ в массиве с помощью функции array_key_exists() .
На языке шаблонов Twig мы можем проверить, существует ли переменная или свойство объекта, просто используя оператор if , например:
{% if app.user %} do something here {% else %} do something else {% endif %}
Но как проверить, существует ли ключ массива с помощью Twig? Я пробовал {% if array.key %} , но это дает мне ошибку:
Key "key" for array with keys "0, 1, 2, 3...648" does not exist
Поскольку одним из основных способов передачи данных в шаблон является использование массивов, кажется, что должен быть какой-то способ сделать это. Есть предположения?
Пример Twig:
{% if array.key is defined %} // do something {% else %} // do something else {% endif %}
Вы можете использовать функцию твинов keys
{% if myVar in someOtherArray|keys %}
default . default общего назначения. default . default выбирает любые исключения из-за неопределенной переменной и допускает замену короткого замыкания альтернативного значения. default является цепным.
{# - ****************************************
тестирование одного ключа в ассоциативном массиве
- #}
{% - set mystring = myarray ['key-no-existo'] | default ('__ BLANK__') -%}
{# - ****************************************
тестирование нескольких ключей в ассоциативном массиве
- #}
{% - set mystring = myarray ['alpha']
| По умолчанию (MyArray [ 'браво'])
| По умолчанию (MyArray [ 'чарли'])
| По умолчанию ( '__ BLANK__')
-%}