Programing

Twig에서 어레이의 특정 키가 있는지 확인

lottogame 2020. 11. 10. 07:44
반응형

Twig에서 어레이의 특정 키가 있는지 확인


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

데이터를 템플릿에 전달하는 기본 방법 중 하나는 배열을 사용하는 것이므로이를 수행하는 방법이 있어야 할 것 같습니다. 이견있는 사람?


나뭇 가지 예 :

{% if array.key is defined %}
  // do something
{% else %}
  // do something else
{% endif %}

keys나뭇 가지 기능을 사용할 수 있습니다.

{% if myVar in someOtherArray|keys %}


빠른 답변 (TL; DR)

  • DeveloperTLindel은 Twig에 배열 키가 있는지 테스트하려고합니다.
  • DeveloperTLindel은 정의되지 않은 키와 관련된 오류를 트랩하려고합니다.
  • 이것은 default필터를 사용하여 처리 할 수 ​​있습니다 .

자세한 답변

문맥

  • Twig 2.x (2017 년 3 월 8 일 수요일 현재 최신 버전)
  • default필터 의 범용 사용 .

문제

  • 대본:
  • DeveloperTLindel은 Twig에 배열 키가 있는지 테스트하려고합니다.
  • DeveloperTLindel은 잠재적으로 정의되지 않은 키로 인해 발생하는 오류 또는 예외를 방지하려고합니다.

해결책

  • DeveloperTLindel은 default필터 를 사용할 수 있습니다 .
  • default필터 정의 변수 때문에 예외를 캐치하고, 다른 값의 단락 substition 있습니다.
  • default필터 체인 가능하다.

예 01


{#-****************************************
  연관 배열의 단일 키 테스트
  -#} 
  {%-set mystring = myarray [ 'key-no-existo'] | default ( '__ BLANK__')-%}

{#-****************************************
  연관 배열의 여러 키 테스트
  -#} 
  {%-set mystring = myarray [ 'alpha']
        | 기본값 (myarray [ 'bravo'])
        | 기본값 (myarray [ 'charlie'])
        | 기본값 ( '__BLANK__')
        -%}

또한보십시오

참고 URL : https://stackoverflow.com/questions/13607241/in-twig-check-if-a-specific-key-of-an-array-exists

반응형