我有一个与this question相关的新问题,但由于问题根本不匹配,我正在创建这个新主题。但这是很好的参考。
我改变了对logs
到log
事物的看法,logs
没问题。但我有另一个名为WikisController
的控制器,在这种情况下我真的想更改URL。我只是讨厌网址为example.com/wikis/subject.html
,我希望它是example.com/wiki/subject.html
。它更清晰,现在约定与其他网站100%匹配,它也称为wiki
,而不是wikis
。但是,由于WikisController
约定,我希望控制器被称为CakePHP
。
嗯,现在出现了真正的问题。我目前在Config/routes.php
中使用以下路由:
Router::connect('/wiki/:action/*', array('controller' => 'wikis'));
Router::connect('/wiki/*', array('controller' => 'wikis'));
这是other topic中解决方案使用的一段代码。但现在我遇到了一些麻烦。嗯,这不是一个大问题,因为一切正常。但我不喜欢这个网址。
当我从example.com/wiki/edit.html
:
echo $this->Html->link('Wiki overview', array(
'controller' => 'wikis',
'action' => 'index',
'ext' => 'html'
));
它正在创建一个完全正常的example.com/wiki/index.html
的链接并且它可以正常工作,但我不想显示index.html
,我只是不这样做。在网址中这是一个额外的单词,用户无需了解他的位置。
我正在使用link
和controller
密钥创建action
,因为我之前遇到过一个小错误。当我没有指定action
时,它会创建一个我不想要的example.com/edit.html
链接。所以我必须将action => index
键添加到数组中。我不确定这是不是一个真正的错误,但它并不重要。 Index = index
并没有改变。我确信我的网址指向了正确的页面是一件好事,因此添加action
对我来说不是问题。
只是为了通知:
当我从页面example.com/flights/index.html
创建一个与我上面的example.com/flights/add.html
完全相同的链接时,它会从网址中删除/index
部分,只需创建一个网址到example.com/flights.html
哪个更清洁。
所以它必须对路由做些什么,但我无法弄清楚是什么。
答案 0 :(得分:1)
如果我理解正确,那么您需要一条将/wiki
连接到控制器index
操作的路线:
Router::connect('/wiki', array('controller' => 'wikis', 'action' => 'index'));
Router::connect('/wiki/:action/*', array('controller' => 'wikis'));
...