我正在使用Symfony 2,我想从我的控制器传递给我的twig模板一个简单的字符串,然后在我的模板上使用它来破坏用户角色。 控制器代码类似于:
public function modify_user_asAction(Request $request, $username)
{
$stringtopass="admin";
$um = $this->get('fos_user.user_manager');
$user = $um->findUserByUsername($username);
if($user == null){
//error page here..
}
$form = $this->createForm(new UserForm(), $user);
$form->handleRequest($request);
if ($form->isValid()) {
$um->updateUser($user);
return $this->redirect($this->generateUrl('acme_query_success'));
}
return $this->render('AcmeUserBundle:Default:modifyuserform.html.twig', array(
'form' => $form->createView(),
));
}
我想在$stringtopass
中传递generateUrl
(如果可能的话)。
我在网上找不到任何东西。
感谢
答案 0 :(得分:1)
你快到了!
API:generateUrl
基本上,只需将array
作为第二个参数传递给generateUrl
。
return $this->redirect($this->generateUrl('acme_query_success', array('stringToPass' => $stringtopass)));
此外, @Brewal 在那里有一个非常有效的观点。注意不要传递一些敏感数据或不受限制地访问该控制器的操作。你可能弊大于利......
<强>更新强>
public function acmeQuerySuccessAction(){
// ... action's logic
$stringToPass = $this->getRequest()->query->get('stringToPass');
// .....
return array(
'stringToPass' => $stringToPass,
// all other elements that you would normally return
);
}