在.twig文件中添加PHP逻辑


Adding PHP logic withing .twig file

我不太熟悉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模板。输出变量

模板专门用于表示,而不是用于包含复杂的逻辑代码。