首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Zend >路由模块问题

Zend >路由模块问题
EN

Stack Overflow用户
提问于 2011-03-03 09:16:05
回答 1查看 573关注 0票数 5

我使用zend来构建REST服务,我使用模块来分离我的api版本,就像我提到的

例:“应用程序/模块/v1/控制器”、“应用程序/模块/v2/控制器”具有不同的操作和功能集。我在application.ini中提到了我的默认模块“application.ini”

正如我在我接受的解决方案中提到的一样,我正在使用上下文切换和Regex路由:

代码语言:javascript
复制
$router->addRoute(
            'route1',
            new Zend_Controller_Router_Route_Regex(
                                            'api/([^-]*)/([^-]*)\.([^-]*)', 
                                            array(
                                                'controller'   => 'index',
                                                'action'       => 'index'),
                                            array(
                                                1 => 'module',
                                                2 => 'controller',
                                                3 => 'format'
                                            )
));

这是我的网址:http://localhost/api/v1/tags.xml

"v1“表示模块。现在,转到上下文切换,如果url有v1,它将转到v1模块的TagsController。但是,如果url中的模块是v2,我将得到一个错误,如:

在此服务器上找不到请求的

/pt/public/index.php/api/v2/tags.xml。

我不明白它为什么会爆炸。是因为我将默认模块设置为v1吗?我不能改变基于url的模块。

,这是我的目录树:

  • TagsController.php

  • 应用程序
    • 模块
      • v1
        • 控制器

代码语言:javascript
复制
    - v2  
        - controllers  
            - TagsController.php

  • library
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-03-03 14:04:19

我的天..。我已经想出了解决办法..。v2模块中的控制器类名必须是"V2_TagsController",而不仅仅是"TagsController“。谢天谢地,它现在起作用了:)参见下面的控制器类名:

代码语言:javascript
复制
- application
      - modules
         - v1
            - controllers
                  - TagsController.php (class TagsController)
         - v2
            - controllers
                  - TagsController.php (class V2_TagsController)
- library
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5178701

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档