Jest sobie kod, który ma za zadanie wziąc dane z formularza przy wywołaniu POST i zapisać do sesji.
Kiedy już ma zapisane dane, ma je wykorzystać jako dane domyślne dla formularza.
Zadanie banalne, ale próbuję żeby się nie napisać zbyt wiele i nie tworzyć od nowa obiektów, po prostu te dane zserializować.
Niestety, pojawia się błąd "Entities passed to the choice field must be managed 500 Internal Server Error - FormException".
Czy ktoś zna jakiś sposób na zgrabne przeniesienie tych danych np. do następnej strony?
Fragment z kontrolera z formatką:
$session = $this->get('session');
$session->start();
$defaultData = $session->get($this->name_session_data, array()); }
// Formatka do filtrowania
$filter_form = $this->createFormBuilder($defaultData)
->add('lang', 'entity', array( 'class' => 'BDKTranslatorBundle:TranslatorLang',
'multiple' => true,
'expanded' => true,
'label' => 'Język',
'required' => false
))
->add('app', 'entity', array( 'class' => 'BDKTranslatorBundle:TranslatorApp',
'multiple' => true,
'expanded' => false,
'label' => 'Aplikacja',
'required' => false
))
->add('name', 'text', array( 'label' => 'Nazwa tekstu',
'required' => false
))
->add('desc', 'text', array( 'label' => 'Opis tłumaczenia tekstu',
'required' => false
))
->add('body', 'text', array( 'label' => 'Tekst tłumaczenia tekstu',
'required' => false
))
->add('without_translation', 'checkbox', array( 'label' => 'Bez tłumaczenia',
'required' => false,
))
->getForm();
if ($request->getMethod() == 'POST') {
$filter_form->bindRequest($request);
$filter_data = $filter_form->getData();
$session->set($this->name_session_data, serialize($filter_data)); $session->save();
}