Twig Loader prependPath无法正常工作

时间:2014-11-19 10:34:59

标签: symfony twig

我在本教程后尝试在symfony 2.5.6中使用主题:http://www.ahmed-samy.com/symofny2-twig-multiple-domains-templating/

所以我在TemplateListener(声明为服务)

中尝试了这个
$path = dirname(__DIR__) . '/Resources/themes/' . $theme . '/views';
$this->twig->getLoader()->prependPath($path, 'MyWebsiteFront');

但这不起作用,模板" MyWebsiteFront:Index:index.html.twig"找不到(但它存在于C:\ www \ MyWebsiteFront \ src \ MyWebsiteFront \ Resources \ themes \ mytheme \ views \ Index \ index.html.twig,$ path生成的路径)

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

根据the docs,当您渲染模板时,您需要使用别名到该路径的命名空间来引用它,例如

@MyWebsiteFront/Index/index.html.twig
  

使用setPaths(),addPath()和prependPath()方法时,   将名称空间指定为第二个参数(如果未指定,   这些方法作用于" main"命名空间):

$loader->addPath($templateDir, 'admin'); Namespaced templates can be
     

通过特殊的@ namespace_name / template_path表示法访问:

$twig->render('@admin/index.html', array());

注意:名称空间不是必需的。