Zend Framework url yönlendirme

3 Cevap php
<?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');
        }
    }   
}
}

Ben bir yönlendirme $this->_redirect('/something') yapmaya çalışıyorum ama çalışmıyor! Sen nasıl bu durumda bir yönlendirme yapabilirim biliyor musun?

Saygılarımızla,

3 Cevap

Zend_Controller_Action_HelperBroker yönlendirme yardımcısı olsun ya da Request nesnesi doğrudan yönlendirme yapmak için de kullanabilirsiniz.

Verilen örneklere bakınız

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

Daha sonra yeniden yönlendiricisi ile TargetAction ve targetController tanımlayabilirsiniz, yönlendirici bir yardımcı almak gerekiyor. İşte bunu yapmak gerekir.

... Kodun geri kalanı

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

... Kodun geri kalanı