在同一个控制器中调用不同的动作
问题描述:
我正在开发一个小应用程序。使用PHP和Zend框架。我有一个表单,我使用它的控制器来查看表单。现在我需要操作表单数据并相应地重定向用户。 这里是我的控制器在同一个控制器中调用不同的动作
<?php
class NewuserController extends Zend_Controller_Action {
public function init()
{
/* Initialize action controller here */
}
public function newuserAction()
{
$this->view->newuser;
}
public function adduserAction(){
$data = $this->getRequest()->getParams();
$u = new User();
$u->setUserName($data['uName']);
$u->setPrepwd($data['pwd']);
$u->setPrepwd($data['pwd']);
if($u->isEqual()){
$val = $u->addUsers();
if($val)
$this->_helper->redirector('main','main');
}
else
$this->_helper->redirector('newuser','newuser');
}
}
?>
我的看法是newuser.phtml
。在<form>
的action
attributr中我指定了Newuser/adduser
。但是当我提交表单时,它再次显示newuser.phtml
。
这是为什么?
在此先感谢
Charu
答
您可以向前请求而不是重定向:
$this->_forward('newuser');
+0
:-)谢谢Florent – 2012-07-11 10:11:26
答
我会建议你使用,而不是盼着重定向帮手,因为如果你希望用户被重定向到主页面,它会重定向,但它不会改变URL,所以如果他们书签的页面,例如它不会工作。如果您使用重定向器,它会重定向并更改网址以显示您的主要phtml页面。同样,如果你在同一个控制器中,不需要包含控制器的第二个参数。检查了这一点更多的帮助
我觉得你重定向器重定向到'NEWUSER/newuser'。 – Florent 2012-07-11 09:40:48
是啊...没有任何方法可以纠正它吗? – 2012-07-11 09:43:25
请发布您的用户级别,以便我们可以检查它。 – Ronn0 2012-07-11 09:44:35