我对TWIG模板不太熟悉,我需要根据URL为模板文件添加一些逻辑。我知道如何在PHP中完成它,但在这里有点丢失。
我可以使用{{app.request.uri}}获取完整的网址,但我真正想做的是这样的:
$uri = $_SERVER['REQUEST_URI'];
if ($uri == "/page1" ||strpos($uri, "/page1/") !== false) {
echo " id="item1";
}
这样的事情可能吗?感谢
答案 0 :(得分:2)
您可以使用in运算符进行尝试,但路由逻辑应位于模板文件之外
你应该在你的Controller中做这个逻辑并设置一个变量" true"。
$uri = $_SERVER['REQUEST_URI'];
$item = null;
if ($uri == "/page1" ||strpos($uri, "/page1/") !== false) {
$item = "id=item1";
}
$this->render('MyBundle:mytwig.html.twig',array("item"=>$item));
{% if item %}
{{ item }} is only written if item is set
{% endif %}
答案 1 :(得分:1)
这种逻辑不属于模板。将该代码保留在模板之外,并将结果分配给变量(而不是直接回显它)。将该变量传递给Twig模板。输出变量。
模板专门用于演示,而不是用于包含复杂的逻辑代码。