【问题标题】:Symfony2 PRE_SET_DATA $event->getData() return wrong objectSymfony2 PRE_SET_DATA $event->getData() 返回错误的对象
【发布时间】:2013-06-23 13:05:21
【问题描述】:

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

这是我的测试代码:

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

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

        }
    );

这会返回一个长文本:

"YOU\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 事件。

【问题讨论】:

    标签: php forms symfony events get


    【解决方案1】:

    我需要在 getter 工作中使用这个条件:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-11-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-10-06
      • 1970-01-01
      • 2015-08-06
      • 1970-01-01
      相关资源
      最近更新 更多