我在本教程后尝试在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生成的路径)
有什么想法吗?
答案 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());
注意:名称空间不是必需的。