如何防止 HTMLHelper::link() 将关键字添加到 URL 路径? (CakePHP 2.5)

How do I prevent HTMLHelper::link() from adding keywords to the URL path? (CakePHP 2.5)

我有一个带有用于打开特定页面的按钮的通用布局:

<?php echo $this->Html->link('My cart', array('controller' => 'shop', 'action' => 'cart'), array('escape' => false)) ?>

此 link 将重定向到页面 /shop/cart。但是,如果我在使用另一个控制器的页面中,我就会遇到问题。示例:我在一个依赖于 UsersController 的页面上,我的 URL 是:customer/ 现在如果我点击 'My Cart' link,URL 是: customer/shop/cart 这是一个错误。

如何清除我的 URL?

谢谢。

您可能已将 customer 设置为 /Config/core 中的路由前缀。php:

Configure::write('Routing.prefixes', array('customer'));

并且您正在从以 customer_.

开头的操作中 linking 到 /shop/cart

这是默认行为。

要删除前缀,重写 link 如下:

<?php echo $this->Html->link('My cart', array('controller' => 'shop', 'action' => 'cart','customer'=>false), array('escape' => false)) ?>

更多关于 Prefix Routing