Symfony2将参数传递给twig

时间:2013-11-28 10:54:11

标签: symfony parameters twig

我正在使用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(如果可能的话)。 我在网上找不到任何东西。 感谢

1 个答案:

答案 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
    );
}