Reputation: 1547
How can I handle request data from the $_POST
data itself. I mean if I try to handle the form like this: $form->handleRequest($request);
, Symfony would try to get the data from $_POST['form_classname']
, but I want to fill my form class straight from base $_POST
variables.
Actually I want to handle the information from the outer site. And I have to develop something like an API. But without authorization, tokens, etc...
So I decided to build the form with some properties I need. After validation the form might do some logic.
Here is an example of $_POST
I have to handle
Function=TransResponse&RESULT=0&RC=00&AUTHCODE=745113
As you can see, there is no form name in request. The $form->handleRequest($request);
works only if the request was like an
[form_name][Function]=TransResponse&[form_name][RESULT]=0&[form_name][RC]=00&[form_name][AUTHCODE]=745113
But I can't change the request format.
Upvotes: 0
Views: 871
Reputation: 4484
Use
$this->get('form.factory')->createNamed('')
$this->get('form.factory.)->createNamedBuilder('')
to create a Form or FormBuilder respectively that uses the whole $_POST
/$_GET
array for its parameters.
Example:
/**
* @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>');
}
Upvotes: 0
Reputation: 1547
Just put in your form class
/** @inheritdoc */
function getBlockPrefix() {
return '';
}
Here is the information about this method Documentation
Upvotes: 0