2012-05-03 6 views
2

Я пытаюсь перенаправить пользователя к зарегистрированному странице, как только они зарегистрированы, но его не делать этого ..Zend Framework маршрут/перенаправление

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

} 

Это то, что у меня есть

Благодаря

ответ

2

В контроллере вы можете следующим образом:

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

Я обычно не используют gotoRoute() поэтому я не уверен, что это причина вашей проблемы, но ваше имя контроллера должно быть все нижнее, то есть Register должно быть register или, может быть, gotoRouteAndExit() решит вашу проблему (просто поднял ее с быстрого взгляда на API)

Вы можете попробовать альтернативу: для маршрутизации между действиями/контроллерами я нахожу следующее наиболее удобными:

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

Который будет перенаправлять вас registeredAction в том же контроллере. Если вы хотите перейти к действию в другом контроллере, просто добавьте контроллер в качестве второго аргумента следующим образом:

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

Спасибо за информативный ответ! Он работает сейчас. – Rex89