【发布时间】:2011-04-01 09:34:52
【问题描述】:
我正在开发一个 zend 框架应用程序,令我惊讶的是,默认路由没有按预期工作。这是我的网址:
http://localhost/zend_app/public/index/test
它应该路由到 default 模块中的 index 控制器 > test 动作。但它没有按预期工作。
当我打印请求参数时,我得到的操作是“get”,id 是“test”。
array (
'controller' => 'index',
'action' => 'get',
'id' => 'test',
'module' => 'default'
)
仅供参考,我在引导文件中配置了某些正则表达式路由,如下所示:
protected function _initRestRoute()
{
require_once 'Zend/Controller/Front.php';
require_once 'Zend/Controller/Router/Route.php';
$ctrl = Zend_Controller_Front::getInstance();
$router = $ctrl->getRouter();
$router->addRoute(
'route2',
new Zend_Controller_Router_Route_Regex(
'api/([^-]*)/([^-]*)\.([^-]*)',
array(
'action' => 'index'
),
array(
1 => 'module',
2 => 'controller'
)
));
}
但没有一条路线与我上面的网址匹配。 我不明白可能是什么问题。
【问题讨论】:
-
您有自定义路线吗?
-
是的,我已经在我的“默认”模块的引导程序中定义了一些自定义路由,使用正则表达式路由。但我希望这些模式都不符合上述网址。
-
@dskanth。你能发布路线吗?
-
@Marcin:我已经用示例路线更新了我的问题。所有路由都以“api/”模式开头。但我希望这些自定义路由都不匹配我的网址:localhost/zend_app/public/index/test
-
@dskanth。 ZF 似乎认为“测试”是“获取”操作的 id 参数。如果你除了 form api 没有任何其他路由,那么我不知道发生了什么。
标签: php zend-framework