在Ubuntu服务器上的prod
环境中运行我的symfony3项目我收到以下错误:
"注意:未定义索引:data_collector / passed_options",
如果我使用dev
环境,则不会发生此错误。
我的自定义FormType
:
// src/MyBundle/Form/CustomType/MyCustomType.php:
class MyCustomType extends AbstractType {
public function buildForm(FormBuilderInterface $builder, array $options){
$builder->addEventListener(FormEvents::POST_SET_DATA, function(FormEvent $event){....}
$form = $event->getForm();
$inheritedAttr = $form->getConfig()->getAttributes()['data_collector/passed_options']['attr']; //it crashes there
....
}
}
我在生产Ubuntu服务器(Like it is explained here)上编辑了我的app_dev.php
文件,以便我可以使用此命令在生产中进行测试:
php bin / console server:启动[我的服务器的IP]:[自定义端口]
但错误仍然没有在dev
环境中抛出。所以我的开发机器不是问题。
可能是$form->getConfig()->getAttributes()
在prod
环境中没有索引吗?
我是否可以通过某种方式调试prod
环境中发生但不在dev
环境中的错误?
答案 0 :(得分:0)
在addEventListener
中,作为$options
函数中的参数传递的buildForm
应该传递,因为它包含属性:
class MyCustomType extends AbstractType {
public function buildForm(FormBuilderInterface $builder, array $options){
$builder->addEventListener(FormEvents::POST_SET_DATA, function(FormEvent $event) use ($options) {....}
$form = $event->getForm();
$inheritedAttr = $options['attr'];
....
}
}