我有另一个显示我的菜单的布局。我的菜单项的标签需要是动态的(如邮箱的未读邮件号)。然后我这样做了:
<a href="{{ path('mypath',{'etat': '2' }) }}">My orders</a>
(
{{ render(controller('MyController', {'etat':2})) }}
<span style="color:red">with {{ render(controller('MyController', {'etat':2})) }} in late</span>
)
我想根据返回控制器的号码显示标签。我不知道如何在变量中获取它。
答案 0 :(得分:0)
在控制器中渲染模板时
return $this->render('twig_template_name.html.twig', array('variable_name' => $variable);
如我所示,您将变量传递给选项数组中的twig模板。你的代码
{{ path('mypath',{'etat': '2' }) }}
在&#39; mypath&#39;下打印在routing.yml中定义的路径。如果&#39; mypath&#39;展示了一条绝对的路线&#39; www.website.com/yourpath',
{{ path('mypath',{'etat': '2' }) }}
会生成www.website.com/yourpath?etat = 2&#39;,它会向您的控制器发送路由/ yourpath / {etat}变量etat,其值为2所以你现在需要做的就是用另一个控制器收到的实际动态值改变2。
我不确定etat是什么但让我们说它是一篇文章并且它有它的id,你有一个包含大量文章的博客页面和打印出来的控制器发送一个数组对于树枝模板的文章,在您的树枝模板上,您可以执行以下操作:
{% foreach article in articles %}
{{ article.title }}
{{ article.story }}
<a href="{{ path('single_story_url',{'id': article.id } }}">read more</a>
{% endforeach %}
你最终得到的结果是:
Catchy Title
关于没有错误的代码以及截止日期取决于创意和精心设计并实施解决方案的令人敬畏的故事
[更多内容]
你当然点击&#34;阅读更多&#34;并最终在url~ / article / 2上,因为文章的id为2,你的url控制器在请求中收到一个变量id,你做一个$id = $_GET['id'];
并从存储库中获取文章并发送它到模板。
希望这回答了你的问题,我是非常分层的,所以请原谅我,如果我感到困惑,我肯定是。