有没有办法在ZF2中传递带有重定向的参数,如
return $this->redirect()->toRoute('account', array('test' => 'ok'));
如果可能,我如何获得test
参数?
PS。 test
不是映射到路由的参数。 account
是我的控制器,它有默认操作,因此我无需在redirect
中指定操作。
答案 0 :(得分:1)
我认为你可以做到以下几点: 假设您的模块是Myaccount,您的控制器是AccountController,您的操作是索引(我假设您的默认操作)。所以在你的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”,因为我们的“测试”价值还可以。
希望有所帮助:)