symfony的树枝延伸:
在树枝存在“”延伸标签,如在这里找到“仅当”延伸; http://twig.sensiolabs.org/doc/tags/extends.html#conditional-inheritancesymfony的树枝延伸:
现在我要做的就是沿着下面的例子中从该网页线的东西:
{% extends standalone ? "minimum.html" : "base.html" %}
但不具有2个模板可供扩展,我只是想从如果一个模板扩展具体条件得到满足。
现在,我已经试过的东西,如:
{% extends boolean ? "template.html.twig" : "" %}
和:
{% if boolean %}
{% extends "template.html.twig" %}
{% endif %}
但前者给出错误说,它不能找到一个模板(因为“”明明心不是一个有效的路径),而后者只是不会出现在所有做任何事情(或者更确切地说,它加载了一段时间,最终没有显示任何东西)
我已经尝试了一些其他的方法,但不能拿出什么,什么o想我会问在这里,如果我可能会失去一些东西。
预先感谢任何答复:)
编辑:为了总结我的意图;我想知道如果我可以告诉我的模板,如果一定条件满足只延长,否则跳过延伸一步。 (如果条件再扩展其他什么都不做)
嫩枝文件生成到PHP类。
的扩展标签应在模板中的第一个标签,如:
的
{% extends %}
标签将被转换为PHPextends
这样子模板将从父模板继承。的
{% if %}
标签作为PHPif
生成模板类的方法里面,所以你不能使用{% if %}
延长一些类与否。
无论如何,你可以扩展您的到来背景下的变量,所以你应该把你的病情的控制。
if ($boolean) {
$template = 'hello.twig';
} else {
$template = 'world.twig';
}
$this->render("MyBundle:MyFeature:child.html.twig", array('template' => $template);
然后在child.html.twig
:
{% extends template %}
尽管代码示例并未涵盖我的案例,但我可以从您的回复的第一部分中得出对我的问题的答案;不,只有满足条件才能延长。 我会接受它,感谢您的回复:) – Keffertjuh 2014-12-03 14:29:34
我带着这个技巧:加空的布局仅与内容块。似乎是工作:)我可以从控制器传递变量和页面加载或不加布局。
<!-- base.html.twig -->
<head>
...stuff...
</head>
<body>
{% block content %}{% endblock %}
</body>
<!-- empty.html.twig -->
{% block content %}{% endblock %}
<!-- some_page.html.twig -->
{% extends boolean ? 'base.html.twig' : 'empty.html.twig' %}
{% block content %}
Now this is my real content
{% endblock %}
我几乎记得带回点什么的时候我张贴了这个问题,但它是伟大的,你要添加的答案更接近要求它的预期结果。 由于我已经接受了一个答案,我不会改变它,但感谢您发布无论:) – Keffertjuh 2016-02-29 00:57:53
在纯枝的语言,也可能是这样的:
{% if app.request.pathinfo starts with '/react' %}
{% set extendPath = "::react_base.html.twig" %}
{% else %}
{% set extendPath = "CoreBundle::layout.html.twig" %}
{% endif %}
{% extends extendPath %}
创建一个空白模板,从一无所有延长? – 2014-12-02 19:24:23
,因为它说“找不到模板”,问题不是出在三元运算符,但在模板的路径。你的父母模板在哪里?下面是关于模板pathes的解释:http://symfony.com/doc/current/book/templating.html#template-naming-locations – 2014-12-02 21:44:55
这个问题是不是在运作的误解的扩展操作或模板寻路,我只是想知道是否可以在有条件扩展的情况下覆盖这个案例(不使用空白模板,因为这很愚蠢)。 还有一些其他的方式,我可以解决这个问题,但它需要额外的模板,我想我会问,如果真的有必要先。 我会重申我的意图。 – Keffertjuh 2014-12-02 23:09:16