我有以下请求对象,并希望在绑定到表单之前从控制器中删除'email_suffix'。这可能吗?
public 'request' =>
object(Symfony\Component\HttpFoundation\ParameterBag)[8]
protected 'parameters' =>
array
'registration' =>
array
'email' => string 's' (length=1)
'email_suffix' => string 'y.com' (length=5)
'password' => string '1234' (length=4)
'_token' => string '967d99ba9f955aa67eb9eb004bd331151d816d06' (length=40)
'product_id' => string '2' (length=1)
'product_description' => string '12 month membership' (length=19)
'product_price' => string '6.99' (length=4)
我试过了$request->request->remove("registration[email_suffix]");
我可以执行$ request-> request->删除(“注册”) - 这可行。
目前,我这样做:
$requestReg = $request->request->get('registration');
$requestReg['email'] = $requestReg['email'].'@'.$requestReg['email_suffix'];
unset($requestReg['email_suffix']);
$request->request->set('registration',$requestReg);
答案 0 :(得分:11)
可以在symfony2中添加和删除请求对象中的参数。
您必须查看ParameterBag Component,其中包含remove($key)
这样的方法,这就是您需要的方法。
因此,如果您从控制器对象调用它,请求的解决方案就是这样:
$this->get('request')->query->remove('email_suffix');
答案 1 :(得分:1)
我不确定,如果您的来电$request->request
是错误的。
您应该使用代表$request->attributes
类的ParameterBag
进行操作。
如果您要查看ParameterBag中的方法,您会发现没有办法在数组中取消设置变量。