2

您好,我使用 Drupal 8 树枝,它无法捕捉到他的功能。

$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_templateDrupal 8 现在的功能感兴趣:https ://www.drupal.org/node/2311123

您在故障排除时遇到困难的原因是因为您加载了一个全新的 Twig 环境,只使用了字符串加载器。如果您只有字符串加载器,则不能包含文件,include "some.html.twig"因为您没有可用的Filesystem加载器。

请参阅这个问题,了解我们如何针对内联模板改进在 Drupal 核心中对字符串加载器的使用,因为字符串加载器实际上会传递所有内容,并且很难进行故障排除。

inline_template理论上应该允许您将字符串加载器与其他加载器结合起来。

也作为包含/扩展/等的旁白。在撰写本文时(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 回答