在CakePHP中,如何保留所有前缀?

时间:2011-03-14 00:02:48

标签: php cakephp authentication

我的链接是这样的:

$this->Html->link('Welcome', array('controller' => 'users', 'action' => 'add'));

我怀疑它不起作用(Firefox说重定向永远不会完成),所以我这样做了:

$this->Html->link('Welcome', array('controller' => 'users', 'action' => 'add', 'my'=>false));

'my'是前缀。我也有'admin','ajax'和'rss'。所以现在不是指向/ users / add或/ my / users / add,而是链接指向/ rss / users / add。链接在一个标题中,在布局中,所以我不知道它将从哪个前缀调用。我想转到/ users / add,即完全保留所有前缀。我怎么在CakePHP中做到这一点?我正在使用1.3版本。

3 个答案:

答案 0 :(得分:5)

$this->params获取前缀,如下所示:

$this->Html->link('Welcome',
  array('controller' => 'users',
        'action' => 'add',
        $this->params['prefix'] => false));

答案 1 :(得分:0)

两件事: 首先,如果Firefox说重定向永远不会完成,那么你在“接收”操作(即添加操作)或者反复重定向的路由配置中出现了问题。

第二:我相信您在the Cookbook之后配置了自定义前缀。但我也发现参数的顺序可能存在问题。将前缀放在开头,如下所示:

$this->Html->link('Welcome', array('my' => false, 'controller' => 'users', 'action' => 'add'));

我这样说是因为如果我没记错的话,'action'参数之后的参数被视为额外的url参数(即/ users / add / foo / bar:bla)。

答案 2 :(得分:0)

在cakephp 3中,使用以下内容

$this->Html->link('Welcome', array(
    'controller' => 'users',
    'action' => 'add', 
    'prefix' => false)
);