我正在尝试用这段代码将路由实现到我的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()...'错误.
如何从引导程序中获取控制器?
我相信你的问题在于你打电话的地方
$this->getResource('frontController')->getRouter()
FrontController资源尚未初始化.
我以这种方式调用了相同的方法(这在Zend Framework 2.0中不起作用,但现在可以工作):
Zend_Controller_Front::getInstance()->getRouter();
或者,您可以确保您的前端控制器已初始化为:
$this->bootstrap('FrontController'); $front = $this->getResource('FrontController');
你可以尝试:
$front = Zend_Controller_Front::getInstance(); $router = $front->getRouter();
如果你遇到任何问题,这些很可能是你的罪魁祸首:
require_once 'Zend/Controller/Front.php'; require_once 'Zend/Controller/Router/Route.php';