Sam*_*ron 1 forms events event-listener symfony
我正在尝试将一些额外的参数传递给我的FormEvent Listener,它通常只需要一个参数,实际的事件本身.我尝试过这样的事情:
$builder->addEventListener(FormEvents::PRE_SET_DATA,
function($event, $extraData) {
//Do stuff
}
);
Run Code Online (Sandbox Code Playgroud)
但是,这会返回一个错误,指出它缺少此函数的第二个参数.我愿意接受任何建议!谢谢!
事件侦听器闭包只传递了事件,因此您$extraData永远不会通过侦听器传递给它.
如果你想在闭包内的表单中的其他地方使用数据,那么你需要使用use类似的方式在闭包中传递它.
$extraData = array('some' => 'stuff');
$builder->addEventListener(FormEvents::PRE_SET_DATA,
function($event) use ($extraData) {
//Do stuff
}
);
Run Code Online (Sandbox Code Playgroud)
编辑
对不起,我昨晚复制并粘贴你的封面,其中包括function($event, $extraData),然后我忘了将其删除.该use声明是所有需要的.这个$extraData参数不会被事件设置,因此(可能)会出现为null,甚至可能会覆盖通过该传递的传入的参数use.
从这个答案(释义)中的信息开始," $extraData当函数被定义时绑定并且在调用函数时绑定参数"会让我相信可能会发生覆盖.