Zend:使用参数重定向到Action

Nav*_*eed 32 php redirect zend-framework

我正在使用zend框架.我使用以下语句重定向到另一个操作.

$this->_helper->redirector('some_action');
Run Code Online (Sandbox Code Playgroud)

上面的语句完美地工作,并且调用'some_action'.现在我想将一些参数传递给'some_action'.

some_action?uname=username&umail=username@example.com
Run Code Online (Sandbox Code Playgroud)

以及如何在被调用的动作中获取参数.通常我们这样做:

$userName = $_REQUEST['uname'];
$usermail = $_REQUEST['umail']; 
Run Code Online (Sandbox Code Playgroud)

怎么做?示例代码请.谢谢

arm*_*dfp 50

你可以尝试使用重定向器:

$params = array('user' => $user, 'mail' => $mail);
$this->_helper->redirector($action, $controller, $module, $params);
Run Code Online (Sandbox Code Playgroud)

  • 当你到达那里时,你如何找回$ params? (2认同)

小智 29

使用该Zend_Controller_Action::redirect()方法(刚刚通过Sarfraz的辅助方法)

$this->redirect('/module/controller/action/username/robin/email/robin@example.com');
Run Code Online (Sandbox Code Playgroud)

注意:_redirect()自Zend Framework 1.7起,不推荐使用该方法.请redirect()改用.

然后在被调用的动作中:

$username = $this->_getParam('username');
$email = $this->_getParam('email');
Run Code Online (Sandbox Code Playgroud)

_getParam()接受第二个可选参数,如果找不到参数,该参数将设置为变量.


Sar*_*raz 7

你可能想试试这个:

  $this->_redirector->gotoUrl('/my-controller/my-action/param1/test/param2/test2');
Run Code Online (Sandbox Code Playgroud)