从一个控制器变为另一个

时间:2013-05-25 21:09:56

标签: variables symfony controller routing

我有客户端控制器。在客户端控制器中,我将数据插入DB。插入后,我需要将最后插入的名称和ID传递给控制器​​发票
在Client contorler中,我可以通过以下方式获取数据:

$inserted['id'] = $client->getClient()->getId();
$inserted['name'] = $client->getClient()->getName() . ' ' . $client->getClient()->getSurename();

如何重定向到路由add_invoice?

路由:

add_invoice:
pattern: /add_invoice
defaults: { _controller: AcmeDemoBundle:Invoice:addInvoice } 

在发票控制器中获取功能:

   public function addInvoiceAction($idClient, $nameClient) {...

感谢您的建议。

1 个答案:

答案 0 :(得分:1)

修复路由以使参数自动传递给方法(通过get)。根据symfony命名约定方法参数使用_under_score ...

add_invoice:
    pattern: /add_invoice/{client_id}/{client_name}
    defaults: { _controller: AcmeDemoBundle:Invoice:addInvoice } 

您可以在控制器中生成路线,如下所示:

$url = $this->generateUrl('add_invoice', array( 
    'client_id' => $inserted['id'], ´
    'client_name' => $inserted['name']
));

然后从客户端控制器重定向:

return $this->redirect($url), 301);