2

こんにちは、Drupal 8 twig を使用していますが、彼の機能をキャッチできません。

$TwigString = '<div>{{result}}{% include "some.html.twig" with {somevars:vars}%}</div>';
$Twig = new \Twig_Environment(new \Twig_Loader_String());
$Twig->setLoader(new \Twig_Loader_String());
$html = $Twig->render($TwigString,array("result" => "Success!"));

私はこれを得た :

成功!some.html.twig

私は何をすべきか ?

4

1 に答える 1

1

inline_templateおそらくDrupal 8の機能に興味があるでしょう: https://www.drupal.org/node/2311123

トラブルシューティングが困難な理由は、文字列ローダーのみを使用して真新しい Twig 環境をロードしたためです。include "some.html.twig"文字列ローダーしかない場合は、ローダーが利用できないため、のようなファイルを含めることはできませFilesystemん。

インライン テンプレートの場合に Drupal コアでの文字列ローダーの使用をどのように改善したかについては、この問題を参照してください。

inline_template理論的には、文字列ローダーを他のローダーと組み合わせることができるはずです。

また、includes/extends/etc の余談として。この記事の執筆時点 (2015 年 3 月) では、Drupal 8 にはいくつかの主要なオプションがあります。

  • テーマおよびモジュール テンプレートの名前空間のサポート:@mymodule/file.html.twig
  • hook_theme()で登録されたテンプレートのレジストリ ローダー:file.html.twig
  • ルートからの絶対パス:modules/mymodule/templates/file.html.twig
于 2015-03-20T13:54:30.703 に答える