Aktywne Wpisy
![InnyWymiar90](https://wykop.pl/cdn/c0834752/aa009b1d65b1cfbeceeecc793cab512306356638bae6189d62ffdec47ba86cab,q60.jpg)
InnyWymiar90 +45
Na nocnej nikt nie zauważy
![InnyWymiar90 - Na nocnej nikt nie zauważy](https://wykop.pl/cdn/c3201142/464cfe5dd00e2df410fe91a7d5adc2380adea07573a380613e9d80f290f43d3f,w150.jpg?author=InnyWymiar90&auth=525bc67609467ed6e2b01e67841bf832)
źródło: temp_file8055170413756594738
Pobierz
luk96 +5
Czy jest po co wracać do Polski z pół milionem złotych i bez wyższego wykształcenia? Elektryk z USA, 27 lat
#emigracja
#emigracja
Mam encje A, B, C oraz Trio. W encji Trio przechowuję relację ManyToOne do A, B i C. Chciałem zrobić custom field w którym wybieram A, B i C a otrzymuję Trio (lub błąd że takie Trio nie istnieje).
TrioType.php
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder->add('A', 'entity', [
'class' => 'Entity\A',
...
$builder->add('B', 'entity', [
'class' => 'Entity\B',
...
$builder->add('C', 'entity', [
'class' => 'Entity\C’,
...
$builder->addEventListener(FormEvents::PRE_SUBMIT, function (FormEvent $event)
{
$form = $event->getForm();
$data = $event->getData();
$trio = $this->trioRepo->getByData($data['A'], $data['B'], $data['C']);
$event->setData($trio ? $trio : false); // jeśli nie ustawię false tylko null to nic nie usuwa
if (!$trio)
$form->addError(new FormError(’Trio does not exist'));
});
}
Problem jest taki, że po wysłaniu dostaję błąd z walidatora Symfony na początku formularza, „Ta wartość jest nieprawidłowa.” („This value is not valid.”). Normalnie w $data siedzi tablica z id encji A, B i C (następnie byłaby przemieniona na obiekty A B i C), a ja w tym momencie nadpisuje ją wyjętym z bazy obiektem Trio. Ten Trio później jest poprawnie przekazywany do encji którą edytuję, tylko jeszcze ten błąd walidacji...
Domyślam się że mu to nie pasuje ta nowa struktura i stąd błąd. Już próbowałem wyłączać walidację w TrioType i nic nie zmieniało. Ale wyłączenie walidacji w Type w którym wykorzystuję tego custom fielda ignoruje ten błąd - ale nie chcę mieć wyłączonej walidacji na całym formularzu.
#symfony #php #webdev
FormEvents::PRE_SUBMIT
Wg diagramu na tej stronie: http://symfony.com/doc/current/components/form/form_events.html wcześniej jest jeszcze
FormEvents::PRE_SET_DATA
i chyba tam się powinno wywoływać setData.źródło: comment_qTFmS6RRJ05ehI0uq7Q0CsWiMbVJXh90.jpg
Pobierz