有没有办法在 ZF2 中通过重定向传递参数,例如
return $this->redirect()->toRoute('account', array('test' => 'ok'));
如果可能的话,我怎样才能得到test
参数?
PS。test
不是映射到路由的参数。account
是我的控制器,它有一个默认操作,所以我不需要在redirect
.
有没有办法在 ZF2 中通过重定向传递参数,例如
return $this->redirect()->toRoute('account', array('test' => 'ok'));
如果可能的话,我怎样才能得到test
参数?
PS。test
不是映射到路由的参数。account
是我的控制器,它有一个默认操作,所以我不需要在redirect
.
我认为您可以执行以下操作:假设您的模块是 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”的值是好的。
希望能帮助到你 :)