繁体   English   中英

如何使用表格将数据从树枝传递到Symfony2控制器

[英]How to pass data from twig to Symfony2 controller using form

我想知道是否有一种方法可以通过表单将一些变量(文本区域的文本)从Twig传递到Symfony2控制器。

        <form action="{{ path('admin_core_save') }}" method="post">
            <div id="edit-template">
                {% if template.getData() is defined %}
                    <textarea id="template">{{ template.getData() }}</textarea>
                {% endif %}
            </div>

            <input type="submit" value="Save" />
        </form>

当我按下保存按钮时,它将进入saveAction()方法

public function saveAction(Request $request)
{
    var_dump($request);

    return new Response('abc');
}

但响应中不包含任何文本区域文本。 有没有办法做到这一点?

我知道我可以在控制器内部构建表格并将其发送给Twig,但我想知道这种方式是否可行。

您可以通过请求对象访问POST值,例如:

$this->get('request')->request->get('name');

我确定您必须学习一些有关Symfony2 Form Component的知识 您会发现symfony已经具有内置系统,用于呈现处理通过它们发布的用户数据的表单。

回答你的问题。 有一个Request对象,可为您提供对所有请求数据(包括POST变量)的完全访问权限。

要访问POST值,请使用Request :: get()方法:

$request->get('variable_name');

要将任何数据传递到树枝模板,请使用TwigEngine :: renderResponse

$this->container->get('templating')->renderResponse('AcmeDemoBundle:Demo:template.twig,html',
    array(
        'someVar' => 'some value'
    )
);

该变量将在您的模板中可用:

{{ someVar }}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM