symfony 2重定向时如何发送数据

时间:2012-01-07 17:32:53

标签: symfony

我从数据库中获取一个对象,然后我想重定向到另一个控制器并在那里发送该对象:

$user = $this->getDoctrine()->getRepository('ShopMyShopBundle:Register')->find($id);

return $this->redirect($this->generateUrl('ShopMyShopBundle_homepage'), array('user' => $user));

如何在重定向并发送到另一个控制器函数中的模板后获取对象,如下所示:

public function indexAction()
{
    return $this->render('ShopMyShopBundle:Main:index.html.twig');
}

1 个答案:

答案 0 :(得分:3)

您无法通过重定向发送对象。你可以做的是发送它的一个独特属性(可能是主键)并再次从数据库中获取它。在您的情况下,它可以是用户ID或昵称。

/**
 * @Route("/shop/{nickname}", name="shop_index")
 */
public function indexAction(User $user)
{
    // ...
}

由于类型提示,将通过其昵称从数据库automatically中提取用户。