我正在尝试使用$this->_forward()
转到同一个控制器中的其他操作,但它无效。我的代码是......
class IndexController extends Zend_Controller_Action
{
public function indexAction()
{
$this->view->bodyCopy = "<p>Please select a file to upload.</p>";
$form = new forms_UploadForm();
if ($this->_request->isPost()) {
$formData = $this->_request->getPost();
if ($form->isValid($formData)) {
$this->_forward('displayFileContent');
} else {
$form->populate($formData);
}
} else {
$this->view->form = $form;
}
}
public function displayFileContentAction()
{
die("In displayFileContentAction");
}
}
但我没有得到我的消息。我收到错误'Page not found'
。
任何帮助都会非常感激,因为我一直遇到这个问题。
答案 0 :(得分:3)
你为什么要转发?只需执行代码,替换
$this->_forward('displayFileContent');
与
return $this->displayFileContentAction();
答案 1 :(得分:1)
您的代码应为:
class IndexController extends Zend_Controller_Action
{
public function indexAction()
{
$this->view->bodyCopy = "<p>Please select a file to upload.</p>";
$form = new forms_UploadForm();
if ($this->_request->isPost()) {
$formData = $this->_request->getPost();
if ($form->isValid($formData)) {
return $this->_forward('display-file-content');
} else {
$form->populate($formData);
}
} else {
$this->view->form = $form;
}
}
public function displayFileContentAction()
{
die("In displayFileContentAction");
}
}
注意:
$this->_forward('display-file-content')
。使用破折号代替驼峰。return
添加$this->_forward('display-file-content')
,否则您的当前操作将继续执行,然后转发给其他操作。display-file-content.phtml
,或者只使用$this->_helper->viewRenderer->setNoRender(true);
$this->_helper->layout->disableLayout();
禁用此操作的视图。答案 2 :(得分:0)
为什么不试试
$this->_redirect('/Controller/displayFileContent');
//Your action
public function displayFileContentAction(){
$this->_helper->viewRenderer->setNoRender(true);
$this->_helper->layout->disableLayout();
die("In displayFileContentAction");
}
答案 3 :(得分:0)
当您调用$this->_forward('displayFileContent')
时,您将浏览Zend Framework的路由堆栈。然后路由搜索不存在的displayfilecontent
操作(url不区分大小写)。
要访问该网址,您需要转发$this->_forward('display-file-content')
,使用破折号代替驼峰案例。
然后,您需要创建名为display-file-content.phtml
的视图文件或禁用此操作的视图呈现