我想知道是否有一种方法可以通过表单将一些变量(textarea中的文本)从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');
}
但响应不包含任何textarea文本。有没有办法在那里得到它?
我知道我可以在控制器中构建表单并将其发送给Twig,但我想知道这种方式是否可行。
答案 0 :(得分:1)
您可以通过请求对象访问POST值,如:
$this->get('request')->request->get('name');
答案 1 :(得分:0)
我确定您必须了解 Symfony2 Form Component 。您会发现symfony已经内置了系统,用于呈现处理通过它们发布的用户数据的表单。
回答你的问题。有一个 Request 对象,可让您完全访问所有请求数据,包括POST变量。
要使用Request::get()方法访问POST值:
$request->get('variable_name');
要将任何数据传递到树枝模板,请使用TwigEngine::renderResponse
$this->container->get('templating')->renderResponse('AcmeDemoBundle:Demo:template.twig,html',
array(
'someVar' => 'some value'
)
);
此var将在您的模板中显示为:
{{ someVar }}