programing

Twig에 어레이의 특정 키가 있는지 확인합니다.

itsource 2022. 9. 24. 23:32
반응형

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

데이터를 템플릿에 전달하는 주요 방법 중 하나는 어레이를 사용하는 것이기 때문에 어떤 방법이 있을 것으로 보입니다.무슨 생각 있어?

Twig의 예:

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

를 사용할 수 있습니다.keys잔가지 함수

{% if myVar in someOtherArray|keys %}

빠른 답변(TL;DR)

  • 개발자TLindel이 Twig에 어레이 키가 있는지 테스트하려고 합니다.
  • 개발자TLindel은 정의되지 않은 키와 관련된 오류를 모두 트랩하려고 합니다.
  • 이것은, 다음의 방법으로 처리할 수 있습니다.default필터링을 실시합니다.

상세 답변

맥락

  • Twig 2.x (2017-03-08년 수요일 현재 최신 버전)
  • 의 범용 용도default필터링을 실시합니다.

문제

  • 시나리오:
  • 개발자TLindel이 Twig에 어레이 키가 있는지 테스트하려고 합니다.
  • 개발자TLindel은 잠재적으로 정의되지 않은 키로 인해 발생하는 오류 또는 예외를 피하려고 합니다.

솔루션

  • 개발자TLindel은default필터링을 실시합니다.
  • default필터는 정의되지 않은 변수에 의한 예외를 모두 검출하여 대체값의 단락 변위를 허용합니다.
  • default필터는 체인 가능합니다.

예 01


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

「 」를 참조해 주세요.

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

반응형