Mam następującą sytuację:Symfony2: Jak zmodyfikować wartość formularz przed walidacji
- typ pola formularza
date
- wzór walidacja jak
dd.mm.YYYY
- obiekt pomocnika, który włącza
12
w12.07.2012
lub2.5
w02.05.2012
itp.
Moje pytanie brzmi: Gdzie mogę wywołać metodę, która przekształca wartość wejściową?
Po wywołaniu tego z metody set
- wartość faktycznie się zmienia. Jednak przy ponownym ładowaniu formularza (np. Niepełne przesłanie) wyświetlana jest stara wartość (taka jak 2.5
), a nie przekształcona wartość (2.5.2012
). Teraz, jak mam przekazać formularz, że wartość zmieniła się w jednostce?
Może istnieje też inny sposób to zrobić w międzyczasie:
$form->bindRequest($request);
// do some fancy stuff here
if ($form->isValid()) {}
PHP
To z Entity:
/**
* @ORM\Column(type="datetime", nullable=true)
* @Assert\DateTime()
*/
protected $date_start;
ten pochodzi z Wpisz:
$builder->add('date_start', 'datetime', array(
'label' => 'Start Datum/Uhrzeit',
'date_widget' => 'single_text',
'time_widget' => 'single_text',
'date_format' => 'dd.MM.yyyy',
'with_seconds' => false,
'required' => false,
));
Poniżej zamieściłem odpowiedź, ale jeśli potrzebujesz więcej szczegółów, opublikuj kod dla swojego typu formularza i modelu i prawdopodobnie będę mógł uzyskać bardziej szczegółowe informacje. – MDrollette