我正在尝试使用routes.ini和bootstrap设置我的zend路由,但由于某些原因,它不能按预期路由。我的routes.ini和bootstrap.php如下所示。
routes.ini
[production]
routes.guestbook.route = "/guestbook"
routes.guestbook.defaults.controller = guestbook
routes.guestbook.defaults.action = indexbootstrap.php
protected function _initRoutes()
{
// Get Front Controller Instance
$front = Zend_Controller_Front::getInstance();
// Get Router
$router = $front->getRouter();
$router->addConfig(new Zend_Config_Ini(APPLICATION_PATH.'/configs/routes.ini', 'production'), 'routes');
}发布于 2011-10-24 08:29:10
在我读完您的评论之后,我可以断言您可以删除这些语句(config和bootstrap),因为您希望实现的是zend框架默认路由器的正常行为,除非您正在使用模块。
感谢FloydThreepwood,他记得我写了这个细节。
发布于 2011-10-24 09:07:58
配置路由的最简单方法是使用Zend_Application_Resource_Router。
配置放在你的application.ini文件中,就这样,不需要更多的代码。
由于您似乎正在使用静态路由(无可变路径组件),请在您的application.ini文件中尝试执行此操作
resources.router.routes.guestbook.type = "Zend_Controller_Router_Route_Static"
resources.router.routes.guestbook.route = "guestbook"
resources.router.routes.guestbook.defaults.module = "default"
resources.router.routes.guestbook.defaults.controller = "guestbook"
resources.router.routes.guestbook.defaults.action = "index"从Bootstrap类中删除_initRoutes()方法。
此外,这只是一个补充,但是当在引导_init*方法中使用其他资源(如前端控制器)时,您的必须确保它们已经被正确引导。要执行此操作,请像这样检索它们
protected function _initSomething()
{
// make sure resource is bootstrapped
$this->bootstrap('frontController');
// retrieve resource
$front = $this->getResource('frontController');
}请参阅http://framework.zend.com/manual/en/zend.application.theory-of-operation.html#zend.application.theory-of-operation.bootstrap.dependency-tracking
https://stackoverflow.com/questions/7870270
复制相似问题