我不太熟悉TWIG模板,我需要根据URL向模板文件添加一点逻辑。我知道如何在PHP中做到这一点,但我有点迷失在这里。
我可以使用{{app.request.uri}}获得完整的URL,但我真正想做的是这样的:
$uri = $_SERVER['REQUEST_URI'];
if ($uri == "/page1" ||strpos($uri, "/page1/") !== false) {
echo " id="item1";
}
这样的事情可能吗?由于
你可以用in操作符试试,但是路由逻辑应该在模板文件之外
你应该在你的控制器中这样做,并设置一个变量"true"。
controller.php
$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));
mytwig.html.twig
{% if item %}
{{ item }} is only written if item is set
{% endif %}
这种逻辑不属于模板。将该代码保留在模板之外,并将结果赋值给一个变量(而不是直接回显它)。将该变量传递给Twig模板。输出变量
模板专门用于表示,而不是用于包含复杂的逻辑代码。