2010-08-20 7 views
3

요청이 처리되기 전에 서버 측 sfRequest 객체에 매개 변수를 어떻게 추가합니까?심포니에서 게시 매개 변수를 수정/추가하는 방법은 무엇입니까?

아래 코드를 시도했지만 작동하지 않습니다.

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

미리 감사드립니다.

+0

어떤 목적으로이 작업을 수행 하시겠습니까? setParameter에는 두 개의 필수 인수가 있습니다. – greg0ire

+0

암호화 된 쿠키에서 항목을 가져 와서 요청의 일부로 만들고 싶습니다. – LionHeart

답변

15

sfRequest 객체에 매개 변수를 추가하는 것은 매우 간단합니다. 배열 매개 변수 와

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

난 당신이 직면 한 것 같아요 문제는, 당신은 당신의 매개 변수 "는 FormName"을 "ID"를 추가 할 세웠 죠.

$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")); 
관련 문제