1

当我将实体传递给树枝文件时,我想将该实体传递回控制器并在数据库持久性之前重新呈现。实体是最初从控制器传递的变量。

枝条:

<a href='{{ path('groupitem_new',{'entity' : entity}) }}'>Link Name</a>

这不起作用。实体未通过。

如何通过 symfony 路由传递实体?

4

1 回答 1

5

你不能。

pathtwig 中的和url函数用于生成不调用控制器操作的 URL。

你应该在twig中嵌入一个带有 {% render %} 标签的控制器,如下所示:

{# app/Resources/views/base.html.twig #}
{% render url('some_route', { 'entity': entity }) %}

请注意,url渲染标签中的url函数与您用来生成 URl 的函数有些不同,这个函数用于调用控制器的操作,并在 2.0.20/2.1.5 版本的 symfony 中引入以进行安全修复。旧的语法是这样的:

{# app/Resources/views/base.html.twig #}
{% render 'AcmeBlogBundle:Blog:show' with { 'entity': entity } %}

其中 'AcmeBlogBu​​ndle:Blog:show' 被调用logical controller name

还请记住,至少您应该在控制器的操作中返回一个空响应:

// src/Acme/BlogBundle/Controller/BlogController.php
.
public function showAction(){
    .
    .
    .
    return new Response();
}
.

还添加use Symfony\Component\HttpFoundation\Response;到控制器文件的顶部。

于 2013-03-22T03:25:35.867 回答