2012-07-11 40 views
1

我正在开发一个小应用程序。使用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

+0

我觉得你重定向器重定向到'NEWUSER/newuser'。 – Florent 2012-07-11 09:40:48

+0

是啊...没有任何方法可以纠正它吗? – 2012-07-11 09:43:25

+0

请发布您的用户级别,以便我们可以检查它。 – Ronn0 2012-07-11 09:44:35

回答

1

您可以向前请求而不是重定向:

$this->_forward('newuser'); 
+0

:-)谢谢Florent – 2012-07-11 10:11:26

1

我会建议你使用,而不是盼着重定向帮手,因为如果你希望用户被重定向到主页面,它会重定向,但它不会改变URL,所以如果他们书签的页面,例如它不会工作。如果您使用重定向器,它会重定向并更改网址以显示您的主要phtml页面。同样,如果你在同一个控制器中,不需要包含控制器的第二个参数。检查了这一点更多的帮助

http://framework.zend.com/manual/en/zend.controller.actionhelpers.html#zend.controller.actionhelpers.redirector

相关问题