【问题标题】:Zend Framework route/redirectZend 框架路由/重定向
【发布时间】:2015-10-08 22:54:36
【问题描述】:

我试图在用户注册后将其重定向到注册页面,但它没有这样做..

<?php

class RegisterController extends Zend_Controller_Action
{

    public function init()
    {
        /* Initialize action controller here */
    }

    public function indexAction()
    {
        $form = new Application_Form_Register();
        $form->submit->setLabel('Register');
        $this->view->form = $form;
        if ($this->getRequest()->isPost()) {
            $formData = $this->getRequest()->getPost();
            if ($form->isValid($formData)) {
                $first_name = $form->getValue('first_name');
                $surname = $form->getValue('surname');
                $email = $form->getValue('email');
                $username = $form->getValue('username');
                $password = $form->getValue('password');
                $is_admin = $form->getValue('is_admin');
                $age = $form->getValue('age');
                $gender = $form->getValue('gender');
                $uni = $form->getValue('uni');
                $register = new Application_Model_DbTable_Users();
                $register->addUser($first_name, $surname, $email, $username, $password, $is_admin, $age, $gender, $uni);

            } else {
                $form->populate($formData);
            }
            $route = array('controller'=>'Register', 'action'=>'registered');
                    $this->_helper->redirector->gotoRoute($route);

        }
    }

    public function registeredAction()
    {
        // action body
    }

}

这就是我所拥有的

谢谢

【问题讨论】:

    标签: zend-framework


    【解决方案1】:

    在控制器中你可以进行以下操作:

    $this->_redirect('/controller/action');
    

    【讨论】:

      【解决方案2】:

      我通常不使用gotoRoute(),因此我不确定这是否是您的问题的原因,但您的控制器名称应全部小写,即Register 应为registergotoRouteAndExit()将解决您的问题(刚刚从API 快速浏览了一下)

      您可以尝试另一种选择:对于动作/控制器之间的路由,我发现以下最方便:

      $this->_helper->redirector('registered');
      

      这会将您重定向到同一控制器中的注册操作。如果您想在不同的控制器中执行操作,只需将控制器添加为第二个参数,如下所示:

      $this->_helper->redirector('registered', 'register');
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多