【问题标题】:Zend Framework - routes - all requests to one controller except requests for existing controllersZend Framework - 路由 - 对一个控制器的所有请求,除了对现有控制器的请求
【发布时间】:2011-01-17 11:40:45
【问题描述】:

如何创建路由来接受所有对不存在的控制器的请求,但保留对现有控制器的请求。

此代码捕获所有路线

$route = new Zend_Controller_Router_Route_Regex('(\w+)', array('controller' => 'index', 'action' => 'index')); $router->addRoute('index', $route);

我应该如何将 /admin/* 或 /feedback/* 之类的路由请求指定给现有的 adminController 或 feedbackController?

【问题讨论】:

标签: zend-framework routing


【解决方案1】:

我只找到了方法 - 如果当前请求是关于管理区域的,则不要添加路由

$request = $frontController->getRequest();               

if (!preg_match('/knownController/', $request->getRequestUri())){
    $router->addRoute('index', new Zend_Controller_Router_Route_Regex('(.*)', array('controller' => 'index', 'action' => 'index')));  
}    

【讨论】:

    【解决方案2】:

    您也可以使用 ErrorController 来做类似的事情。也许如果你深入了解他们实现插件的方式,它会帮助你构建出符合你需求的东西?

    【讨论】:

      【解决方案3】:

      您不应该创建路由来处理它。错误控制器将处理以下所有三种错误:

      • 控制器不存在
      • 操作不存在
      • 没有匹配的路由

      查看文档以了解如何正确使用它:

      http://framework.zend.com/manual/en/zend.controller.plugins.html#zend.controller.plugins.standard.errorhandler.fourohfour

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-09-10
        • 1970-01-01
        • 1970-01-01
        • 2013-05-17
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多