Столкнулся с задачей непосильной для себя, только учу симфони
процесс заказа разбит на несколько шагов
нужно как то сохранить данные с первых шагов и передать их в последующие
как это можно было бы сделать?
без использования дополнительных бандлов(там не нужна сложная логика)
<?php
namespace AppBundle\Controller;
use Symfony\Component\DomCrawler\Field\ChoiceFormField;
use Symfony\Component\Form\Extension\Core\Type\CheckboxType;
use Symfony\Component\Form\Extension\Core\Type\ChoiceType;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Method; //под вопросом
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;
//use Timestampable\Fixture\Document\Book;
//функционал формы
use Symfony\Component\Form\Extension\Core\Type\DateTimeType;
use AppBundle\Entity\Book;
use AppBundle\Form\BookType;
use Symfony\Component\HttpFoundation\Response;
class BookController extends Controller
{
/**
* @Route("/")
*/
public function findAction(Request $request)
{
$book = new Book();
//шаг первый - запоняем начальные поля
$form = $this->createFormBuilder($book)
->add('date', DateTimeType::class, array('widget' => 'single_text'))
->add('fromBook', ChoiceType::class)
->add('toBook', ChoiceType::class)
->add('returnDate', DateTimeType::class, array('widget' => 'single_text'))
->add('returnFrom', ChoiceType::class)
->add('returnTo', ChoiceType::class)
->add('people')
->add('isReturn', CheckboxType::class)
->getForm();
$form->handleRequest($request);
if ($form->isSubmitted()) {
// после отправки формы
// здесь как то нужно записать наверное данные из формы
// чтобы можно было использовать эти данные в следующем getcarsAction
return $this->redirectToRoute('/step2');
}
return $this->render('AppBundle:Book:find.html.twig', array(
'book' => $book,
'form' => $form->createView(),
));
}
/**
* @Route("/step2")
*/
public function getcarsAction()
{
// здесь нужно получить данные с первого шага findAction
// например записать данные в переменную $getTrips
$getTrips = $step1; // как в $step1 получить данные - в этом суть вопроса
if ($form->isSubmitted() && $form->isValid()) {
return $this->redirectToRoute('/step3');
}
return $this->render('AppBundle:Book:cars.html.twig', array(
'triplist' => $getTrips,
));
}
/**
* @Route("/step3")
*/
public function bookAction()
{
}
}