7

{% include %}次で定義されたテンプレートパスの外側にあるテンプレートを含めることは可能ですか:

$template = $twig->loadTemplate('example.tpl'); 

この行が機能しないため、私はそれを求めています:

{% include '.../example/navbar_left.tpl' %}
4

5 に答える 5

5

内部にTwig_Loader_Filesystemあるテンプレート名を明示的に拒否するため、を使用することはできません。これは、 file 内..の関数の定義で確認できます。validateName($name)Twig/lib/Twig/Loader/Filesystem.php

パス外のテンプレートにアクセスする必要がある場合、私が考えることができる唯一のクリーンな解決策は、独自の loader を作成することです。

機能する回避策は、実際に登録されているフォルダー内にシンボリックリンクを定義し、Twig_Loader_Filesystemアクセスしたいディレクトリを指すことです。この方法には注意して、リンクを安全な場所に向けてください。

于 2012-10-27T03:11:11.523 に答える
4

Twig ローダー (ファイルシステム ローダー) にパスを追加できます。Fabien からの最後の返信を参照してください (addPath メソッドが必要です) https://github.com/symfony/symfony/issues/1912

于 2012-10-29T19:28:47.100 に答える