当我尝试从事件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事件。
答案 0 :(得分:6)
我需要将此条件用于getter工作:
if ($data instanceof \YOU\CommercantBundle\Entity\LivraisonChoix) {
}