1

有没有办法在 ZF2 中通过重定向传递参数,例如

return $this->redirect()->toRoute('account', array('test' => 'ok'));

如果可能的话,我怎样才能得到test参数?

PS。test不是映射到路由的参数。account是我的控制器,它有一个默认操作,所以我不需要在redirect.

4

1 回答 1

1

我认为您可以执行以下操作:假设您的模块是 Myaccount 并且您的控制器是 AccountController 并且您的操作是 index (我假设您的默认操作)。所以在你的 module.config.php 你会有这样的东西:

return array(
'controllers' => array(
    'invokables' => array(
        'Account' => 'Myaccount\Controller\AccountController', 

然后在某些操作中,您可以使用 ZF2 样式的重定向传递参数,如下所示:

return $this->redirect()->toRoute('account', array(
                   'controller' => 'account',
                   'action' =>  'index',
                       'test' => $testVal  // in this case "okay"
                   )); 

哦,是的,你在 module.config.php 中的路由也很重要:

'router' => array(
    'routes' => array(
        'account' => array(
            'type'    => 'segment',
            'options' => array(
                'route'    => '/account[/:action][/:test]',

因为这就是 ZF2 知道去哪里以及附加什么内容的方式,在我们的例子中,它会导致“../account/index/test/okay”,因为我们对“test”的值是好的。

希望能帮助到你 :)

于 2013-08-02T11:11:36.913 回答