【发布时间】:2011-05-17 09:50:38
【问题描述】:
我的系统结构如下:
application/
configs/
application.ini
router.php
layouts/
modules/
default/
controllers/
forms/
models/
views/
Bootstrap.php
test/
controllers/
forms/
models/
views/
Bootstrap.php
Bootstrap.php
routes.php 文件:
$useDefaultRoutes = false;
$routes['index'] = new Zend_Controller_Router_Route(
'',
array('controller' => 'index',
'action' => 'index',
'module' => 'default'));
主 Bootstrap.php 文件
class Bootstrap extends Zend_Application_Bootstrap_Bootstrap
{
public static function setRoutes(){
$frontController = Zend_Controller_Front::getInstance();
$router = $frontController->getRouter();
$routes = array();
if(file_exists('../application/configs/routes.php'))
{
require_once "configs/routes.php";
foreach($routes as $routeName => $routeValue){
$router->addRoute($routeName, $routeValue);
}
if($useDefaultRoutes == false)
{
$router->removeDefaultRoutes();
}
}
}
protected function _initFrontModules() {
$this->bootstrap('frontController');
$front = $this->getResource('frontController');
$this->setRoutes();
}
}
问题
当我在浏览器中输入http://address 时,默认模块会启动 IndexController 和 一切似乎都很好。但是,如果我输入http://address/test,则会出现错误 - 找不到页面。如果我删除 routes.php 文件,那么它可以工作。那么我的路由有什么问题呢?
您的帮助将不胜感激。
【问题讨论】:
-
这是您的完整路线列表吗?
-
移除 $useDefaultRoutes = false;
-
@ShaunHare 每个模块都有它的引导文件。例如测试模块有它自己的:class Test_Bootstrap extends Zend_Application_Module_Bootstrap { }
-
@Ashley 删除后没有任何反应。
标签: zend-framework