Hello,
After form submission, I can’t retrieve the data of my form. When I var_dump the request, they are not listed.
Here is the log excerpt corresponding to the request :
[2016-09-09 17:16:47] request.INFO: Matched route “{route}”. {“route”:“TasksForm”,“route_parameters”:{“_controller”:“AppBundle\Controller\TasksFormController::tasksFormAction”,“_route”:“TasksForm”},“request_uri”:“http://localhost:8000/app_dev.php/TasksForm",“method”:"POST”}
[2016-09-09 17:16:47] security.INFO: Populated the TokenStorage with an anonymous Token.
[2016-09-09 17:16:47] request.INFO: Matched route “{route}”. {“route”:“TaskCreated”,“route_parameters”:{“_controller”:“AppBundle\Controller\TaskCreatedController::taskCreatedAction”,“_route”:“TaskCreated”},“request_uri”:“http://localhost:8000/app_dev.php/TaskCreated",“method”:"GET”}
[2016-09-09 17:16:47] security.INFO: Populated the TokenStorage with an anonymous Token.
tasksFormAction uses a POST, but taskCreatedAction receives a GET…
Thanks in advance,
MC
Here are my files :
// src/AppBundle/Entity/TaskSetClass.php
namespace AppBundle\Entity;
class TaskSetClass
{
protected $taskName;
protected $dueDate;
public function getTaskName()
{
return $this->taskName;
}
public function setTaskName($taskName)
{
$this->taskName = $taskName;
}
public function getDueDate()
{
return $this->dueDate;
}
public function setDueDate(\DateTime $dueDate = null)
{
$this->dueDate = $dueDate;
}
}
/* AppBundle/Form/TasksFormType.php */
namespace AppBundle\Form;
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\Form\Extension\Core\Type\SubmitType;
use Symfony\Component\Form\Extension\Core\Type\DateType;
use Symfony\Component\OptionsResolver\OptionsResolver;
/* */
class TasksFormType extends AbstractType
{
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->setMethod('POST')
->add('taskName')
->add('dueDate', DateType::class, array('widget' => 'choice',))
->add('save', SubmitType::class, array('label' => 'Create Task'))
;
}
public function getName()
{
return 'tasks_form';
}
public function setDefaultOptions(OptionsResolverInterface $resolver)
{
$resolver->setDefaults(array(
'data_class' => 'AppBundle\Entity\TaskSetClass',
));
}
}
// src/AppBundle/Controller/TaskFormController.php
namespace AppBundle\Controller;
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Form\Extension\Core\Type\TextType;
use Symfony\Component\Form\Extension\Core\Type\DateType;
use Symfony\Component\Form\Extension\Core\Type\SubmitType;
use AppBundle\Entity\TaskSetClass;
use AppBundle\Form\TasksFormType;
/* */
class TasksFormController extends Controller
{
public function tasksFormAction(Request $request)
{
$taskSet = new taskSetClass();
$TasksFormType=new TasksFormType();
$form = $this->createForm(TasksFormType::class, $taskSet);
$form->handleRequest($request);
if($form->isSubmitted())
{
if($form->isValid())
{
$taskSet = $form->getData();
return $this->redirectToRoute('TaskCreated', array('task' => $taskSet,));
}
else
{
$message='Not valid '.json_encode($form->getData());
}
}
else
{
$message='Not submitted ';
}
return $this->render('tasksForm.html.twig', array('form' => $form->createView(),'message'=>$message,));
}
}
// src/AppBundle/Controller/TaskCreatedController.php
namespace AppBundle\Controller;
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;
use Symfony\Component\HttpFoundation\Request;
/* */
class TaskCreatedController extends Controller
{
public function taskCreatedAction(Request $request)
{
$task = $request->request->get('tasks_form'); // name of the generated form
return $this->render('taskCreated.html.twig', array('task' => $task,));
}
}