CakePHP - 在 URL 中更改控制器名称
CakePHP - Change Controller name in URL
我有一个用 CakePHP 2.2.3 构建的遗留应用程序
应用程序的一部分具有名为 SymposiumsController.php 的控制器文件。这导致 URL,例如:
domain.com/symposiums
domain.com/symposiums/view/23
问题是 'symposiums' 不是一个真正的(英语)单词;应该是 'symposia'.
我想重命名我的 URL,所以它们是这样的:
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
,因此这对用户在 URL.
中看到的内容没有影响
简而言之,我不希望 'symposiums' 在我的 URL 中的任何地方暴露。我希望他们都在原处使用 'symposia'。
我读过 http://book.cakephp.org/2.0/en/development/routing.html 但看不出如何做到这一点。有没有人有办法解决吗?当然我不必重命名 controllers/models 和数据库表来执行此操作?
我不知道这是否有所不同,但我也打开了管理路由,所以我的 SymposiumsController.php 也具有以下功能:
admin_add()
admin_delete()
admin_edit($id)
感谢任何帮助。
这是这个特定重定向的代码:
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
但是如果您需要重定向多个操作,那么我建议您重命名控制器。
注意: 如果您重命名控制器或创建新的路由器,那么您需要确保在所有应用程序中将 link 修改为新的控制器名称。
我有一个用 CakePHP 2.2.3 构建的遗留应用程序
应用程序的一部分具有名为 SymposiumsController.php 的控制器文件。这导致 URL,例如:
domain.com/symposiums
domain.com/symposiums/view/23
问题是 'symposiums' 不是一个真正的(英语)单词;应该是 'symposia'.
我想重命名我的 URL,所以它们是这样的:
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
,因此这对用户在 URL.
简而言之,我不希望 'symposiums' 在我的 URL 中的任何地方暴露。我希望他们都在原处使用 'symposia'。
我读过 http://book.cakephp.org/2.0/en/development/routing.html 但看不出如何做到这一点。有没有人有办法解决吗?当然我不必重命名 controllers/models 和数据库表来执行此操作?
我不知道这是否有所不同,但我也打开了管理路由,所以我的 SymposiumsController.php 也具有以下功能:
admin_add()
admin_delete()
admin_edit($id)
感谢任何帮助。
这是这个特定重定向的代码:
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
但是如果您需要重定向多个操作,那么我建议您重命名控制器。
注意: 如果您重命名控制器或创建新的路由器,那么您需要确保在所有应用程序中将 link 修改为新的控制器名称。