我的链接是这样的:
$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版本。
答案 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)
);