Symfony2 - 在PRE_SUBMIT事件中获取实体对象

时间:2017-05-02 11:14:51

标签: symfony events entity listener

我添加了一个表单和PRE_SUBMIT事件。

$builder->addEventListener(FormEvents::PRE_SUBMIT, array($this, 'onPreSubmit'));

现在当我在事件中转储表单数据时,我得到一个数组而不是一个对象。

public function onPreSubmit(FormEvent $event)
{
    $form = $event->getForm();
    /** @var Offer $offer */
    $offer = $event->getData();

    var_dump($offer);
    die;
}

在此事件中,我想检查不在表单中的实体的状态字段,并根据状态向某些字段添加一些约束。

数组不包含实体的id ...

P.S。我会使用SUBMIT来获取实体对象,但在这种情况下,SUBMIT事件为时已晚,无法添加约束。

1 个答案:

答案 0 :(得分:3)

$ event-> getData()是请求数据,$ form-> getData()是实体,但它是原始实体而不是提交的实体。 有关详细信息,请参阅http://symfony.com/doc/current/form/events.html#component-form-event-table