在Symfony文档的“模板命名和位置”部分中,它说:
Symfony2对模板使用bundle:controller:template字符串语法。这允许使用几种不同类型的模板,每种模板都位于特定的位置:
- AcmeBlogBundle:Blog:index.html.twig:此语法用于为特定页面指定模板。字符串的三个部分,每个部分之间用冒号(:)分隔,表示以下含义:
- AcmeBlogBundle :(捆绑)模板位于AcmeBlogBundle内部(例如src / Acme / BlogBundle);Blog :(控制器)指示该模板位于Resources / views的Blog子目录内;
- index.html.twig :(模板)文件的实际名称为index.html.twig。
我想解析一个树枝模板,并在数据固定装置自举过程中将html持久保存到学说实体的属性中,如下所示:
// let's say it finds ./Data/Product/camera_description.html.twig
$productDescriptionTemplate = __DIR__.sprintf(
'/Data/Product/%s_description.html.twig',
$product->getName()
);
$product->setDescription(
$this->container->get('templating')->render(
$productDescriptionTemplate,
array()
)
);
$em->flush();
引发以下异常:
# would actually be an absolute path
[InvalidArgumentException]
Template name "./Data/Product/camera_description.html.twig
" is not valid (format is "bundle:section:template.format.engine").
是的,我可以将产品描述模板移至其中,path/to/bundle/Resources/views/
但我对是否有可能规避该约定更感兴趣:有没有办法为树枝模板引擎提供树枝模板的相对路径或绝对路径,并使其没有使用约定bundle:controller:template
?
您还可以按以下说明创建新的名称空间:http : //symfony.com/doc/current/cookbook/templating/namespaced_paths.html
例如 :
paths:
"%kernel.root_dir%/../Data/Product/": product
应该可以让你写:
'product::%s_description.html.twig',
要么
'@product/%s_description.html.twig'
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句