提交表单后,我应该在哪里放置更新sql操作(Symfony / Sylius)

时间:2018-08-30 10:57:43

标签: symfony sylius

新手问题:

我有一个实体customer,其ID为fieldA,fieldB和fieldC

有一种表单可以更新fieldA,fieldB。

提交表单后,我想添加一个函数来检查fieldA和fieldB是否相等,fieldC更改为1。

该函数放在哪里?显然不在实体和形式下。我应该编写一个新的控制器(如何触发更改并执行操作吗?添加一个侦听器?)?

1 个答案:

答案 0 :(得分:0)

最快的方法是在Form中处理它:

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();
            })
        ;