rob*_*lls 1 php redirect zend-framework
什么是在Zend Framework中使用变量重定向的推荐方法?
假设我们在控制器中有这样的动作:
public function newAction()
{
$form = new Form_ApplicationForm();
if($this->_request->isPost()){
$data = $_POST;
if($form->isValid($data)){
$appModel = new Model_Application();
$result = $appModel->createApplication($form->getValue('name'),
$form->getValue('email'),
$form->getValue('comments'));
if($result){
// redirect here
}
}else{
$form->populate($data);
}
}
$this->view->form = $form;
}
Run Code Online (Sandbox Code Playgroud)
如果我想重定向到我可以显示如下内容的URL:
"感谢您的申请,您的参考是#123"
我该如何执行此重定向?
这样的事可能吗?
$this->_redirect('/application/confirm/'.$result);
Run Code Online (Sandbox Code Playgroud)
如果是这样,我将如何访问$resultvar?
编辑或我想这会工作:
$this->_redirect('/application/confirm/?id='.$result);
Run Code Online (Sandbox Code Playgroud)
..但我不确定这是不是最好的做法?
我见过人们_forward()用于重定向的示例,但URL永远不会改变,这会产生多个提交的问题等.
我见过有人推荐,gotoSimple()但我不确定.如果这很明显,那么仍然是一个ZF noob如此道歉,但我想这无论如何都有CRUD类型系统的多种用途,所以有兴趣知道.
谢谢
很多选择.您的控制器$this->_redirect()将工作委托给Zend_Controller_Action_Helper_Redirector.检查其文档中的所有选项,然后选择您喜欢的选项.最简单的方法不涉及自定义路线:
$this->_redirect('/controller/action/param1/value1/param2/value2');
Run Code Online (Sandbox Code Playgroud)
要么
$this->_redirect(
'/controller/action',
array('param1' => 'value1', 'param2' => 'value2')
);
Run Code Online (Sandbox Code Playgroud)
你正确地注意_redirect和之间的区别_forward.转发意味着只重新路由初始请求,同时_redirect真正导致HTTP重定向.
| 归档时间: |
|
| 查看次数: |
14070 次 |
| 最近记录: |