【发布时间】:2013-07-15 00:01:49
【问题描述】:
假设我希望一个页面有一个漂亮的 URL:
Config/routes.php
Router::connect('/profile', array('controller' => 'users', 'action' => 'profile'));
如果我想将访问者引导到该页面,我可以使用如下 URL:
$this->redirect('/profile');
$this->Html->link('Your Profile', '/profile');
但是假设我改变了主意,我现在希望 URL 是:
/account
如何在不将/profile 的每个实例都更改为/account 的情况下更改整个站点?
或者...
问我问题的另一种方法是如何使用 Cake 数组语法正确编码所有 URL(我更喜欢这样做而不是硬编码任何东西):
$this->redirect(array('controller' => 'users', 'action' => 'profile'));
$this->Html->link('Your Profile', array('controller' => 'users', 'action' => 'profile'));
然后确保任何时候调用控制器/动作组合,它都会将人们发送到 URL:
/profile
并将此规则放在一个可以更改的地方。比如:
Router::connect(array('controller' => 'users', 'action' => 'profile'), '/profile');
// Later change to
Router::connect(array('controller' => 'users', 'action' => 'profile'), '/account');
有没有办法做到这一点,并且还允许将进一步的请求参数传递到 URL 中?
【问题讨论】:
标签: cakephp routing cakephp-2.0 cakephp-2.3