【发布时间】:2015-10-28 10:31:10
【问题描述】:
我有一个内置于 CakePHP 2.2.3 的遗留应用程序
应用程序的一部分有一个名为 SymposiumsController.php 的控制器文件。这导致 URL 如下:
domain.com/symposiumsdomain.com/symposiums/view/23
问题是'symposiums' 不是一个真实的(英语)词。应该是“专题讨论会”。
我想重命名我的网址,使其如下所示:domain.com/symposiadomain.com/symposia/view/23
我尝试通过编辑 app/Config/Routes.php 来使用它:
Router::connect('symposia/:action', array('controller' => 'symposiums'));
然而,这一切只是将domain.com/symposia 重定向到domain.com/symposiums,因此与用户在 URL 中看到的内容没有区别。
简而言之,我不希望在我的 URL 中的任何地方公开“专题讨论会”。我希望他们都使用“专题讨论会”。
我阅读了http://book.cakephp.org/2.0/en/development/routing.html,但不知道如何执行此操作。有没有人有办法解决吗?当然我不必重命名控制器/模型和数据库表来执行此操作?
我不知道这是否会有所不同,但我也打开了管理路由,因此我的 SymposiumsController.php 也具有以下功能:
admin_add()admin_delete()admin_edit($id)
感谢任何帮助。
【问题讨论】:
-
尝试在控制器中设置name property,我相信路由器会尊重该名称。
-
@Oldskool 谢谢。我试过这个,但不幸的是它给出了一个错误:缺少视图错误:找不到 SymposiumsController::index() 的视图。错误:确认您已创建文件:app/View/Symposia/index.ctp 还尝试将我的“Symposiums”视图目录重命名为“Symposia”,然后重定向回 URL,例如 domain.com/symposiums - 这是原来的问题
-
旧路线可能仍在缓存中,请尝试清除它。
-
缓存在应用程序中被关闭。我有 Configure::write('Cache.disable', true);在我的配置文件中设置。
-
Router::connect('symposia在座谈会前缺少/?
标签: php cakephp cakephp-2.0