首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Zend框架路由转发

Zend框架路由转发
EN

Stack Overflow用户
提问于 2015-11-04 23:10:48
回答 1查看 402关注 0票数 2

我有一个旧的url '/report/details/‘,现在我想将这个url更改为'/customer_report/details’。控制器名为reportController,操作为detailsAction。

我设置了routes.ini并添加了以下内容:

代码语言:javascript
复制
routes.report.route = /customer_report/details/
routes.report.defaults.controller = report
routes.report.defaults.action = details

在编辑routes.ini之后,如果我使用url‘/cutomer/details’,它将完美地工作。但是,如果我输入url '/report/details/',它仍然工作。

当url为/report/details时,我是否可以控制它自动重定向到/customer_report/details?

PS。我正在使用ZendFrameworkv1.12

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-11-04 23:18:08

如果没有信息,很难回答你有什么ZF版本。ZFv1有像/:controller/:action这样的预定义路由,这就是为什么您的/report/details路由可能仍然有效的原因。您可以更改此默认行为,清除默认路由:

代码语言:javascript
复制
$frontController = Zend_Controller_Front::getInstance();
$router = $frontController->getRouter();
$router->removeDefaultRoutes(); 
$router->addRoute(
   'error', 
    new Zend_Controller_Router_Route (
       '/customer_report/details/',
       array (
          'controller' => 'report',
          'action' => 'details'
       )
    )
);

如果要重定向用户,可以将逻辑移动到新的操作:

代码语言:javascript
复制
public function customerReportAction() {
    // logic from reportAction()
}

并在旧版本中添加http重定向:

代码语言:javascript
复制
public function reportAction() {
   $this->_redirect('/customer_report/details/');
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33533843

复制
相关文章

相似问题

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