Куда следует поместить действие обновления sql после отправки формы (Symfony / Sylius) - PullRequest
0 голосов
/ 30 августа 2018

Вопрос новичка:

У меня есть сущность customer с id, fieldA, fieldB и fieldC

Есть форма, которая может обновлять fieldA, fieldB.

После отправки формы я хочу добавить функцию, чтобы проверить, равны ли fieldA и fieldB, fieldC изменится на 1.

Где я должен поставить функцию? Очевидно, не в сущности и форме. Должен ли я написать новый контроллер (как вызвать изменения и выполнить действие? Добавить слушателя?)?

1 Ответ

0 голосов
/ 30 августа 2018

Самый быстрый способ - обработать его в форме:

use Symfony\Component\Form\FormEvent;
use Symfony\Component\Form\FormEvents;

...

$builder
            ...
            ->addEventListener(FormEvents::SUBMIT, function (FormEvent $event) {
                $data = $event->getForm();

                if ($data->getFieldA() === $data->getFieldB()) {
                    $data->setFieldC(1);
                }
                $event->getForm()->setData();
            })
        ;
...