Symfony2 PRE_SET_DATA $ event-> getData()返回错误的对象

时间:2013-06-26 11:53:19

标签: php forms symfony events get

当我尝试从事件PRE_SET_DATA获取数据时,我的对象具有良好的价值,但我无法使用它。

这是我的测试代码:

        $builder->addEventListener(
        FormEvents::PRE_SET_DATA,
        function(FormEvent $event) use ($factory){

            $data = $event->getData();
            print_r($data);

        }
    );

这会返回一个长文本:

  

“你\ CommercantBundle \ Entity \ LivraisonChoix对象([id:YOU \ CommercantBundle \ Entity \ LivraisonChoix:private] => 22 ......”

但是当我使用吸气剂时:

        $builder->addEventListener(
        FormEvents::PRE_SET_DATA,
        function(FormEvent $event) use ($factory){

            $data = $event->getData();
            print_r($data->getId());

        }
    );

我收到错误:

  

FatalErrorException:错误:在非对象上调用成员函数getId()

如何访问数据?

这适用于PRE_BIND事件。

1 个答案:

答案 0 :(得分:6)

我需要将此条件用于getter工作:

        if ($data instanceof \YOU\CommercantBundle\Entity\LivraisonChoix) {

        }