2010-10-26 2 views
4

Я пытаюсь разобраться, как я могу остановить zend или перенаправить zend, чтобы перейти к другому контроллеру zend и действию, если проверка в ремешке загрузки не удалась.Zend Framework MVC перенаправление на другой контроллер и действие

, например, переменный прибудут не существует или скорее сеанс не существует означает, что пользователь должен войти.

, чтобы пользователь был первоначально заявленным индекс/SomeAction

, но я хочу, чтобы идти для входа/индекса

В моем ремешке для загрузки я бы поместил условие, а затем изменил действие контроллера для просмотра.

Если я делаю это таким образом, который не является стандартным, может ли кто-нибудь направить меня к документации по наилучшей практике?

Зенд новичок

ответ

3

От Zend documentation (Dispatcher)

// forward to an action in another controller: 
// FooController::bazAction(), 
// in the current module: 
$this->_forward('baz', 'foo', null, array('baz' => 'bogus')); 
+0

вот что я действительно искал спасибо. –

2

Я обычно не ставить аутентификации в загрузчике, который должен иметь свой собственный контроллер.

Создайте AuthController(), чтобы настроить свой аутентификационный адаптер и настроить свой экземпляр.

Тогда в общем виде (для защищенных страниц), просто проверить свой экземпляр с чем-то вроде:

$auth = Zend_Auth::getInstance();  
if(!$auth->hasIdentity())  
{ 
#re-direct to login page 
} 
+0

это было действительно полезно спасибо. –

4

Я sugest вас сделать с помощью плагинов для доступа проверить на каждой странице и для входа создать контроллер проверки подлинности.

Здесь вы узнаете, как сделать это http://alex-tech-adventures.com/development/zend-framework/61-zendauth-and-zendform.html

Пример:

class Plugin_AccessCheck extends Zend_Controller_Plugin_Abstract 
{ 
    public function preDispatch(Zend_Controller_Request_Abstract $request) 
    { 
     // ... 

     if(!$auth->hasIdentity()) 
     { 
      $request->setControllerName('authentication') 
       ->setActionName('login'); 
     } 
    } 
} 
+0

согласны с тем, что этот дизайн хороший – jah

+0

хороший подход. хороший – Stann

 Смежные вопросы

  • Нет связанных вопросов^_^