我有这样的结构:
- example.com / myController的/索引/ MyGoodPage /最大/
- example.com / myController的/索引/ MyBestPage /最优/
- example.com / myController的/索引/ MyFancyPage / lowprice /
但我不希望我的观众看到“指数”二字,因为它不会给他提供任何更多信息/她。 我需要我的网址是这样的:
- example.com / myController的/ MyGoodPage /最大/
- example.com / myController的/ MyBestPage /最优/
- example.com / myController的/ MyFancyPage / lowprice /
但要做到thisin默认蛋糕的方式,我需要创建的行动来处理我的情况单独hundereds。 我不想创建他们的所有行动,我需要创建一个动作,然后就显示相关内容的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(...));
并指定像一个正则表达式[最大|最佳的| lowprice]例如。
这样做,你也可以指定something
要传递给控制器,这将是可作为$this->request->something