Zend Framework - получить фронт-контроллер из начальной загрузки? - PullRequest
8 голосов
/ 29 ноября 2009

Я пытаюсь внедрить маршруты в мой файл начальной загрузки с этим кодом;

protected function _initRoutes()
{
    $router = $this->getResource('frontController')->getRouter();

    $router->addRoute(
        'profil',
        new Zend_Controller_Router_Route
        (
            'profil/:username',
            array
            (
                'controller' => 'users',
                'action'    => 'profil'
            )
        )
    );
}

но это не работает, так как я получаю сообщение «Вызов функции-члена getRouter () для необъекта в ...».

Как я могу получить контроллер из начальной загрузки?

Ответы [ 2 ]

7 голосов
/ 29 ноября 2009

Я считаю, что ваша проблема в том, что вы звоните

$this->getResource('frontController')->getRouter()

ресурс FrontController еще не был инициализирован.

Я вызвал тот же метод таким образом (который не будет работать в Zend Framework 2.0, но пока работает):

Zend_Controller_Front::getInstance()->getRouter();

В качестве альтернативы вы можете убедиться, что ваш фронт-контроллер инициализирован так:

$this->bootstrap('FrontController');

$front =  $this->getResource('FrontController');
5 голосов
/ 29 ноября 2009

Вы можете попробовать:

$front  = Zend_Controller_Front::getInstance();
$router = $front->getRouter();

И если у вас возникнут какие-либо проблемы, скорее всего, это ваши виновники:

require_once 'Zend/Controller/Front.php';    
require_once 'Zend/Controller/Router/Route.php';
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...