Twig でオブジェクトの配列を操作する場合、多くの場合、動的名を持つ変数にアクセスする必要があります。これは、テンプレート構文と PHP 関数の組み合わせを使用して実現できます。
プレースホルダー {n} という名前の変数 (n は変数) にアクセスするには、属性関数:
{{ attribute(invoices, 'placeholder1') }}
これは、現在の請求書オブジェクト内の placeholder1 変数の値を返します。
または、値に直接アクセスできます。括弧表記を使用したコンテキスト配列の変換:
{{ _context['placeholder' ~ id] }}
このアプローチは、より簡潔で明確であるため、一般に好まれます。ただし、存在しない変数にアクセスするときの実行時エラーを回避するには、strict_variables 環境オプションを true に設定する必要があります。
strict_variables オプションが true に設定されている場合は、存在しない変数にデフォルト値を提供するデフォルトのフィルター:
{{ _context['placeholder' ~ id]|default('Default value') }}
変数を使用する前に存在するかどうかを確認するには、定義されたテストを使用できます:
{% if _context['placeholder' ~ id] is defined %} ... {% endif %}
このアプローチは、デフォルトのフィルターを使用するよりも冗長ですが、例外処理をより明示的に制御できます。
以上がTwig で動的変数名にアクセスするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。