Как удалить отдельный параметр из объекта запроса Symfony2

у меня есть следующий объект запроса и я хотел бы удалить 'email_suffix' из контроллера перед привязкой к форме. Возможно ли это?

public 'request' => 
    object(SymfonyComponentHttpFoundationParameterBag)[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 - >remove ("регистрация") - это работает.

пока я делаю это:

$requestReg = $request->request->get('registration');
$requestReg['email'] = $requestReg['email'].'@'.$requestReg['email_suffix'];
unset($requestReg['email_suffix']);
$request->request->set('registration',$requestReg);

2 ответов


Я не уверен, если ваш звонок $request->request это опечатка.

вы должны работать с $request->attributes представляет ParameterBag класса.

Если вы пройдете через методы в ParameterBag вы увидите, что нет способа снять переменную внутри массива.


есть возможность добавлять и удалять параметры из объекта запроса в Symfony2. Вы должны посмотреть на Компонент ParameterBag есть такой метод называется remove($key), это то, что вам нужно.

таким образом, решение для вашего запроса будет таким, если вы вызовете его из объекта контроллера:

$this->get('request')->query->remove('email_suffix');