Symfony - 处理来自 $_POST 本身的请求,无需搜索表单类名
Symfony - handle request from $_POST itself, without searching form classname
我的问题是如何处理来自 $_POST 数据本身的请求数据。我的意思是,当我尝试 $form->handleRequest( $request );
symfony 尝试从 $_POST[form_classname] 获取数据时,但我想直接从基本 $_POST 变量[=] 填写我的表格 class 14=]
更新:
实际上我想处理来自外部站点的信息。我必须开发类似 API 的东西。但未经授权,令牌等..
所以我决定用我需要的一些属性来构建表单。验证后,表单可能会执行一些逻辑。那么,我做得对吗?还是会有坑?
更新:
这是我必须处理的 $_POST 示例
Function=TransResponse&RESULT=0&RC=00&AUTHCODE=745113
如您所见,请求中没有表单名称。 $form->handleRequest( $request );
仅在请求类似于
时才有效
[form_name][Function]=TransResponse&[form_name][RESULT]=0&[form_name][RC]=00&[form_name][AUTHCODE]=745113
但是我无法更改请求格式,所以我希望尽可能快速和简单地解决它
填入表格即可class
/** @inheritdoc */
function getBlockPrefix() {
return '';
}
这里是关于这个方法的信息Documentation
使用
$this->get('form.factory')->createNamed('')
$this->get('form.factory.)->createNamedBuilder('')
分别创建使用整个 $_POST
/$_GET
数组作为其参数的 Form 或 FormBuilder。
示例:
/**
* @Route("/testRoute")
* @param Request $request
* @return Response
*/
public function testAction(Request $request): Response
{
$form = $this->get('form.factory')->createNamedBuilder('', FormType::class, null, ['csrf_protection' => false])
->add('text', TextType::class)
->setMethod('GET')
->getForm();
$form->handleRequest($request);
if ($form->isSubmitted() && $form->isValid()) {
return new Response($form['text']->getData());
}
return new Response('<a href="?text=123">Submit me</a>');
}
我的问题是如何处理来自 $_POST 数据本身的请求数据。我的意思是,当我尝试 $form->handleRequest( $request );
symfony 尝试从 $_POST[form_classname] 获取数据时,但我想直接从基本 $_POST 变量[=] 填写我的表格 class 14=]
更新: 实际上我想处理来自外部站点的信息。我必须开发类似 API 的东西。但未经授权,令牌等.. 所以我决定用我需要的一些属性来构建表单。验证后,表单可能会执行一些逻辑。那么,我做得对吗?还是会有坑?
更新: 这是我必须处理的 $_POST 示例
Function=TransResponse&RESULT=0&RC=00&AUTHCODE=745113
如您所见,请求中没有表单名称。 $form->handleRequest( $request );
仅在请求类似于
[form_name][Function]=TransResponse&[form_name][RESULT]=0&[form_name][RC]=00&[form_name][AUTHCODE]=745113
但是我无法更改请求格式,所以我希望尽可能快速和简单地解决它
填入表格即可class
/** @inheritdoc */
function getBlockPrefix() {
return '';
}
这里是关于这个方法的信息Documentation
使用
$this->get('form.factory')->createNamed('')
$this->get('form.factory.)->createNamedBuilder('')
分别创建使用整个 $_POST
/$_GET
数组作为其参数的 Form 或 FormBuilder。
示例:
/**
* @Route("/testRoute")
* @param Request $request
* @return Response
*/
public function testAction(Request $request): Response
{
$form = $this->get('form.factory')->createNamedBuilder('', FormType::class, null, ['csrf_protection' => false])
->add('text', TextType::class)
->setMethod('GET')
->getForm();
$form->handleRequest($request);
if ($form->isSubmitted() && $form->isValid()) {
return new Response($form['text']->getData());
}
return new Response('<a href="?text=123">Submit me</a>');
}