11

テンプレートをフルパスからロードする方法を知りたいです(FILE定数のように)。

実際には、次のようにテンプレートの「ルート」パスを設定する必要があります。

require_once '/path/to/lib/Twig/Autoloader.php';
Twig_Autoloader::register();

$loader = new Twig_Loader_Filesystem('/path/to/templates');
$twig = new Twig_Environment($loader, array(
   'cache' => '/path/to/compilation_cache',
));

その後 :

$template = $twig->loadTemplate('index.html');
echo $template->render(array('the' => 'variables', 'go' => 'here'));

ファイルの名前だけでなく、完全なパスで loadTemplate メソッドを呼び出したいです。

どのようにできるのか ?

そのようなもののために独自のローダーを作成したくありません..

ありがとう

4

5 に答える 5

8

それをするだけです:

$loader = new Twig_Loader_Filesystem('/');

そのため、-> loadTemplate()は、に関連してテンプレートをロードし/ます。

または、相対パスと絶対パスの両方でテンプレートをロードできるようにする場合は、次のようにします。

$loader = new Twig_Loader_Filesystem(array('/', '/path/to/templates'));
于 2011-08-15T12:36:23.747 に答える
0

Symfony (バージョン 5.4) の構成で、テンプレートを含むフォルダーに新しいコア パスを追加します。

twig:
    default_path: '%kernel.project_dir%/templates'
    paths:
        '%kernel.project_dir%/src/Service/SendEmail/EmailTpl': EmailTpl

これで、テンプレートをレンダリングできます。

コントローラーで:

$this->render('@EmailTpl/bobo_reg.html.twig')

その他の場所:

$content = $this->container->get('twig')->render('@EmailTpl/bobo_reg.html.twig');
于 2022-02-10T10:14:24.610 に答える