>我有这样的结构:
- example.com/我的
- 控制器/索引/我的好页面/最大值/ example.com/我的
- 控制器/索引/我的百科页面/最优/ example.com/我的
- 控制器/索引/我的花式页面/低价/
但我不希望我的访问者看到"索引"一词,因为它不会给他/她提供更多信息。我需要这样的网址:
- example.com/我的
- 控制器/我的好页面/最大值/
- example.com/我的控制器/我的最佳页面/最优/ example.com/我的
- 控制器/我的花式页面/低价/
但是要在默认的蛋糕方式中执行此操作,我需要创建单独的操作来处理我的情况。我不想创建所有操作,我需要创建一个操作,然后显示有关request->params['pass']
的相关内容。
可能吗?
路由的工作: http://book.cakephp.org/2.0/en/development/routing.html这实际上是核心 PagesController 的 display
方法默认所做的:
Router::connect('/pages/*', array('controller' => 'pages', 'action' => 'display'));
您可以对控制器执行相同的操作
Router::connect('/controller_name/*', array('controller' => 'controller_name', 'action' => 'index'));
您已经选择了一个答案,但这里有一个更好的答案。
上面发布的Router::connect('/controller_name/*', array(...));
将匹配任何内容,因此您无法再访问/controller_name/delete
或任何其他方法。
您应该选择不那么贪婪的路线,例如Router::connect('/contorller_name/:something', array(...));
并指定一个正则表达式,例如[maxum|optimum|lowprice]。
这样做,您还可以指定要传递给控制器的something
,它将作为$this->request->something