2010-08-20 2 views
3

Как добавить дополнительные параметры к объекту sfRequest на стороне сервера перед обработкой запроса?Как изменить/добавить параметры сообщения в symfony?

Я попытался под кодом, но он не работает.

$request->setParameter('formname[id]'); 

Большое спасибо заранее.

+0

Для какой цели вы хотите сделать это? setParameter имеет два обязательных аргумента. – greg0ire

+0

Я хотел вытащить элемент из зашифрованного файла cookie и сделать его частью запроса. – LionHeart

ответ

15

Добавление параметров в объект sfRequest довольно просто.

$request->setParameter('newParam', 'newParamValue'); 
//see your added param 
var_dump($request->getParameter('newParam')); 

Проблема я думаю, что вы, возможно, столкнулись в том, с параметрами массива предположим, что вы хотите добавить «идентификатор» на свой параметр «FORMNAME».

$newParams = array('id'=>1); 

//Merge the existing values in formname with your new value 
$formnameArray = $request->getParameter('formname'); 
$mergedArray = array_merge($formnameArray, $newParams); 

//save it back in the request obj 
$request->setParameter('formname', $mergedArray); 

Это должно быть сделано.

0

Вышеупомянутое решение не имеет возможности реализовать с многоуровневым массивом (например, с i18n).

//get the array 
$formnameArray = $request->getParameter('formname'); 
//alter the array 
$formnameArray['id'] = $newID; 
$request->setParameter('formname', $formnameArray); 

Не нужно сливать свой мозг.

1

Вы можете получить доступ к общему request атрибуту от $request и задать или добавить параметры. Пример:

$request->request->set("p1", "v1"); 
$request->request->set("p2", "v2"); 

Или

$request->request->add(array("p1"=>"v1", "p2"=>"v2")); 
Смежные вопросы