如果我有一个像这样传递给twig的数组
$values = [
'title'=>'Title of Page',
'subsection_a'=>[
'title'=>'Title of Subsection'
],
];
我想要做的是针对模板中的特定部分,使用'subsection_a'作为基础,所以当我{{ title }}
时,它会显示“分段标题”而不是“页面标题”< / p>
我对Twig非常不熟悉,而且我正在测试它作为模板引擎的替代品,我将它放在一起进行项目。
答案 0 :(得分:3)
如果您在子模板中划分模板的主要比例,则可以使用关键字with
执行此操作:
Controller.php这样
echo $twig->render('main.twig, [
'title' => 'parent',
'foo' => 'bar',
'bar' => 'foo',
'child' => [
'title' => 'Child',
'foo' => 'Foobar',
]
]);
main.twig
<h1>{{ title }}</h1>
<p>{{ foo }}</p>
{% include "child.twig" with child %}
child.twig
<h2>{{ title }}</h2>
<p>{{ foo }}</p>
答案 1 :(得分:1)
没有Twig方式实现这一目标。 如果它只是为了易于使用,您可以设置一个短变量,例如
{% set sub = subsection_a %}
这样你就可以写{{sub.title}}。
您可以使用twig创建一个新数组,合并特定的子部分,但在您的情况下,它会使管理代码变得更加困难,您可能会重复并且可能不值得这么麻烦。