Ruta/redireccionamiento de Zend Framework

Estoy tratando de redirigir al usuario a una página registrada una vez que se ha registrado, pero no lo está haciendo.

<?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
    }

}

Esto es lo que tengo

Muchas Gracias

preguntado el 03 de mayo de 12 a las 17:05

2 Respuestas

En el controlador puede hacer lo siguiente:

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

contestado el 04 de mayo de 12 a las 07:05

Normalmente no uso gotoRoute() por lo tanto, no estoy seguro de si esta es la causa de su problema, pero el nombre de su controlador debe estar en minúsculas, es decir Register debiera ser register o tal vez gotoRouteAndExit() resolverá su problema (simplemente lo recogió de un vistazo rápido a la API)

Puede probar una alternativa: para el enrutamiento entre acciones/controladores, encuentro lo siguiente más conveniente:

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

Lo que lo redirigirá a la acción registrada en el mismo controlador. Si desea ir a una acción en un controlador diferente, simplemente agregue el controlador como segundo argumento como este:

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

contestado el 04 de mayo de 12 a las 08:05

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.