当我将实体传递给twig文件时,我想将该实体传递回控制器并在数据库持久性之前重新渲染。 entity是最初从控制器传递的变量。
嫩枝:
<a href='{{ path('groupitem_new',{'entity' : entity}) }}'>Link Name</a>
这不起作用。该实体未通过。
如何通过symfony路线传递实体?
答案 0 :(得分:5)
你做不到。
树枝中的 path
和url
函数用于生成不调用控制器操作的URL。
您应该使用{%render%}标记代替embedd a controller,如下所示:
{# app/Resources/views/base.html.twig #}
{% render url('some_route', { 'entity': entity }) %}
请注意,render标记中的url
函数与用于生成URl的url
函数有某种不同,此函数用于调用控制器的操作,并在2.0.20 /的symfony中引入2.1.5安全修复版本。旧语法是这样的:
{# app/Resources/views/base.html.twig #}
{% render 'AcmeBlogBundle:Blog:show' with { 'entity': entity } %}
其中'AcmeBlogBundle:Blog:show'被称为logical controller name
。
还要记住,至少你应该在控制器的动作中返回一个空响应:
// src/Acme/BlogBundle/Controller/BlogController.php
.
public function showAction(){
.
.
.
return new Response();
}
.
还将use Symfony\Component\HttpFoundation\Response;
添加到控制器文件的顶部。