【问题标题】:Passing an entity to a controller via symfony route using twig使用 twig 通过 symfony 路由将实体传递给控制器
【发布时间】:2013-03-22 11:31:12
【问题描述】:

当我将实体传递给 twig 文件时,我想将该实体传递回控制器并在数据库持久化之前重新渲染。 entity 是最初从控制器传递过来的变量。

树枝:

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

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

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

【问题讨论】:

    标签: php symfony twig


    【解决方案1】:

    你不能。

    twig 中的pathurl 函数用于生成不调用控制器操作的 URL。

    你应该改为 embedd a controller 在带有 {% render %} 标签的树枝中,如下所示:

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

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

    {# 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; 添加到控制器文件的顶部。

    【讨论】:

    • 嗯,这回答了这个问题。我如何处理这种新发现的力量完全是另一回事。
    猜你喜欢
    • 2015-08-13
    • 2018-10-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-09
    • 2015-01-06
    相关资源
    最近更新 更多