我有一个内置在CakePHP 2.2.3中的遗留应用程序
应用程序的一部分具有名为SymposiumsController.php的控制器文件。这导致了URL,例如:
domain.com/symposiums
domain.com/symposiums/view/23
问题在于'座谈会'不是真正的(英语)单词;它应该是'座谈会。
我想重命名我的网址,所以他们是这样的:
domain.com/symposia
domain.com/symposia/view/23
我尝试通过编辑app / Config / Routes.php来实现此目的:
Router::connect('symposia/:action', array('controller' => 'symposiums'));
但是,所有这一切都会将domain.com/symposia
重定向到domain.com/symposiums
,因此用户在网址中看到的内容没有任何区别。
简单地说,我不想要'座谈会'暴露在我网址的任何地方。我希望他们都能使用' symposia'在它的位置。
我看过http://book.cakephp.org/2.0/en/development/routing.html,但无法看到如何执行此操作。有没有人有办法解决吗?当然,我不必重命名控制器/模型和数据库表来执行此操作吗?
我不知道这是否有所不同,但我也启用了管理路由,因此我的SymposiumsController.php还具有以下功能:
admin_add()
admin_delete()
admin_edit($id)
感谢任何帮助。
答案 0 :(得分:1)
以下是此特定重定向的代码:
Router::connect('/:controller/:action/:id',
array('controller' => 'symposiums', 'action' => 'view', 1)
);
:controller => Give the name new name of controller e.g. symposia
:action => Give the name new name of action e.g. view
:id => Give the name new name of controller e.g. 23
但是如果你需要重定向多个动作,那么我建议你重命名控制器。
注意:如果您重命名控制器或创建新路由器,则需要确保在所有应用程序中修改指向新控制器名称的链接。