Zend Framework перенаправление URL - PullRequest
2 голосов
/ 12 марта 2010
<?php
 class PI_Controller_Plugin_AssetGrabber extends Zend_Controller_Plugin_Abstract
{
public function dispatchLoopStartup(Zend_Controller_Request_Abstract $request)
{
    /*
        The module name
    */
    $moduleName = $request->getModuleName();
    /*
        This modules requires the user to be loggedin in order to see the web pages!
    */
    $loginRequiredModules = array('admin');

    if (in_array($moduleName,$loginRequiredModules)) {
        $adminLogin = new Zend_Session_Namespace('adminLogin');
        if (!isset($adminLogin->loggedin)) {
            /*--------------------------------------
               Here I want to redirect the user
            */
             $this->_redirect('/something');
        }
    }   
}
}

Я пытаюсь сделать перенаправление $this->_redirect('/something'), но не работает! Знаете ли вы, как я могу сделать перенаправление в этом случае?

С наилучшими пожеланиями,

Ответы [ 3 ]

7 голосов
/ 29 марта 2012

... остаток кода

if (!isset($adminLogin->loggedin)) {
    $baseUrl = new Zend_View_Helper_BaseUrl();
    $this->getResponse()->setRedirect($baseUrl->baseUrl().'/something');
}

... остаток кода

5 голосов
/ 12 марта 2010
<?php
class AlternativeController extends Zend_Controller_Action
{
    /**
     * Redirector - defined for code completion
     *
     * @var Zend_Controller_Action_Helper_Redirector
     */
    protected $_redirector = null;

    public function init()
    {
        $this->_redirector = $this->_helper->getHelper('Redirector');
    }

    public function myAction()
    {
        /* Some Awesome Code */

        $this->redirector('targetAction', 'targetController');
        return; //Never reached!
    }
}

Вам нужно получить помощника по перенаправлению, затем вы можете определить targetAction и targetController с помощью перенаправителя. Это должно сделать это.

2 голосов
/ 12 марта 2010

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

См. Примеры, приведенные в

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