我有这样的结构:
但我不希望我的访问者看到“索引”字样,因为它不会向他/她提供任何更多信息。我需要这样的网址:
但是要以默认的Cake-way方式执行此操作,我需要创建单独的操作来处理我的情况。我不想创建所有操作,我需要创建一个操作,然后显示与request->params['pass']
相关的内容。
有可能吗?
答案 0 :(得分:2)
这是路由的工作: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'));
答案 1 :(得分:1)
您已经选择了答案,但这里有一个更好的答案。
上面发布的 Router::connect('/controller_name/*', array(...));
会匹配任何内容,因此您无法再访问/controller_name/delete
或任何其他方法。
您应该选择Router::connect('/contorller_name/:something', array(...));
这样不那么贪婪的路线,并指定一个像[maximum | optimal | lowprice]这样的正则表达式。
执行此操作您还可以指定要传递给控制器的something
,它将以$this->request->something