当前位置:  开发笔记 > 编程语言 > 正文

Zend Framework - 从bootstrap获取前端控制器?

如何解决《ZendFramework-从bootstrap获取前端控制器?》经验,为你挑选了2个好方法。

我正在尝试用这段代码将路由实现到我的bootstrap文件中;

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

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

但它不起作用,因为我得到'在一个非对象中调用成员函数getRouter()...'错误.

如何从引导程序中获取控制器?



1> Noah Goodric..:

我相信你的问题在于你打电话的地方

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

FrontController资源尚未初始化.

我以这种方式调用了相同的方法(这在Zend Framework 2.0中不起作用,但现在可以工作):

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

或者,您可以确保您的前端控制器已初始化为:

$this->bootstrap('FrontController');

$front =  $this->getResource('FrontController');



2> Corey Ballou..:

你可以尝试:

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

如果你遇到任何问题,这些很可能是你的罪魁祸首:

require_once 'Zend/Controller/Front.php';    
require_once 'Zend/Controller/Router/Route.php';

推荐阅读
围脖上的博博_771
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有