インクルードの書き方
Twigでのインクルードの書き方について解説します。(Twig標準の仕様に従います)
基本的なインクルード
include関数を使ってテンプレートをインクルードします。
{{ include('/path/to/parts.twig') }}変数を渡す
インクルードするテンプレートに変数を渡したい場合は、第2引数として変数を渡します。
{{ include('/path/to/parts.twig', { title: 'タイトルです' }) }}このように書くことで、/path/to/parts.twig 内で title 変数が使えるようになります。
ファイルが存在しない場合のエラー回避
従来のインクルード文だと、インクルードするファイルがない場合でもエラーは発生しませんでしたが、Twigのインクルードはファイルが存在しない場合エラーが出力されます。
インクルードするファイルが存在しない場合にエラーを回避するには、名前付き引数 ignore_missing に true を渡します。
{{ include('/path/to/parts.twig', {}, ignore_missing = true) }}引数を位置で渡す場合、ignore_missing は第4引数です。第3引数は親テンプレートの変数を引き継ぐかどうかを指定する with_context です(Twig 標準の include と同じ順序)。
{# 位置で渡す場合(第3引数 with_context、第4引数 ignore_missing) #}
{{ include('/path/to/parts.twig', {}, true, true) }}
インクルード文の中にはグローバル変数以外にも全ての変数が利用できます。
従来のインクルードだと、インクルードパス内に利用できる変数はグローバル変数かつ特定のものに制限されていましたが、Twigのインクルードはすべての変数をインクルードパスに含めることが可能です。
{% set filename = 'hoge' %}
{{ include('/include/' ~ filename ~ '.twig', ignore_missing = true) }}