前缀路由cakephp

时间:2011-01-14 17:51:27

标签: php cakephp routing

提出的问题: 我理解使用'admin'=> true / false以及我的情况'user'=> true / false并且可以创建适合每个场景的链接,但是我正在寻找一种方法来实现这一点路线文件。 例如,路线文件中已经有这个:

Router::connect('/pages/*', array('controller' => 'pages', 'action' => 'display'));

但是我也希望任何带有前缀的链接执行相同的重定向,并删除前缀.. 我试过了:

Router::connect('*/pages/*', array('controller' => 'pages', 'action' => 'display', 'user'=>false));
Router::connect('/user/pages/*', array('controller' => 'pages', 'action' => 'display', 'user'=>false));

但这不起作用。 有帮助吗? 干杯

----------(原问题如下)--------

快一点.. 我不确定如何防止前缀, 例如,如果我在domain.com/admin/order或domain.com/user/order中,它们是订单控制器中的admin_和user_ actions,导航菜单包含指向页面的链接显示(控制器页面操作显示,**)单击它们会自动以当前前缀作为前缀。 如何在路由器文件中设置重定向通配符前缀(即。 / pages / )?

编辑 - 我的意思是我想重定向到一个没有前缀的URL ....因为当用户在前缀url并点击一个简单的控制器链接=>行动=>在这种情况下,当我只是一个没有前缀的链接时,它会自动使用当前前缀(管理员或用户)为链接添加前缀。 (即如果蛋糕只是在相关链接中实际指定时才使用前缀,而不是在每个简单的html辅助控制器,动作链接上继续使用前缀,我更喜欢它。)

2 个答案:

答案 0 :(得分:1)

如果您使用$ html帮助程序创建链接,那么您可以使用

$html->link('users', array('prefix' => $this->params['prefix'],'controller' => 'users','action' => 'index'))

答案 1 :(得分:0)

我不是cakePHP的用户,所以这在黑暗中有点刺痛,但在Zend框架中,你可以使用$this->baseUrl('controller/action');在视图中,这将为你提供所需的网址。

例如,如果我在 www.example.com/admin/moderate / ,我使用以下链接编写了一个链接:

<a href="users/search">Search for a user</a>

链接将是:

www.example.com/admin/moderate/users/search

如果我用过:

<a href="<?= $this->baseUrl('users/search'); ?>">Search for user</a>

输出现在是:

www.example.com/users/search

快速谷歌搜索后,我认为cakePHP替代方案是Router::url(array('controller'=>'users','action'=>'search'), true);

相关问题