前缀路由cakephp
问题经修正如下: 我了解“admin”=>true/false的用法,在我的例子中也是“user”=>true/false,并且可以创建适合于每个场景的链接,但是我正在寻找一种方法将其实现到routes文件中。 例如,routes文件中已经存在以下内容:前缀路由cakephp,php,cakephp,routing,Php,Cakephp,Routing,问题经修正如下: 我了解“admin”=>true/false的用法,在我的例子中也是“user”=>true/false,并且可以创建适合于每个场景的链接,但是我正在寻找一种方法将其实现到routes文件中。 例如,routes文件中已经存在以下内容: Router::connect('/pages/*', array('controller' => 'pages', 'action' => 'display')); 但是,我也希望任何带有前缀的链接都能执行相同的重定向,并删除前
Router::connect('/pages/*', array('controller' => 'pages', 'action' => 'display'));
但是,我也希望任何带有前缀的链接都能执行相同的重定向,并删除前缀。。
我试过:
但这不起作用。
有什么帮助吗?
干杯
----------(以下原问题)--------
就快一点。。
我不确定如何防止前缀,
例如,如果我在domain.com/admin/order或domain.com/user/order中,它们是orders controller中的管理员和用户操作,并且导航菜单包含指向页面显示(控制器页面操作显示,**)的链接,当单击它们时,它们会自动以当前前缀作为前缀。
如何在路由器文件中设置重定向通配符前缀(即/pages/)
编辑-
我的意思是我想重定向到一个没有前缀的url。。。。因为当用户位于前缀url中并单击一个链接(即controller=>action=>)时,它会自动使用当前前缀(在本例中为admin或user)为该链接添加前缀,而我只是简单地将其设置为非前缀链接。(也就是说,如果cake只在相关链接中指定了前缀时才使用前缀,而不是在每个简单的html帮助器控制器、操作链接上继续使用前缀,我更愿意这样做。)我不是cakePHP的用户,所以这有点冒险,但在Zend框架中,在视图中,您可以使用
$this->baseUrl('controller/action')代码>这将为您提供所需的url
例如,如果我在www.example.com/admin/mediate/上,并使用以下代码对视图中的链接进行编码:
链接将是:
www.example.com/admin/mediate/users/search
如果我使用:
现在的输出是:
www.example.com/users/search
在快速的谷歌搜索之后,我认为cakePHP的替代方案是如果您使用$html helper创建链接,那么您可以使用
$html->link('users', array('prefix' => $this->params['prefix'],'controller' => 'users','action' => 'index'))
我的意思是我想重定向到一个没有前缀的url。。。。因为当用户位于前缀url中并单击一个链接(即controller=>action=>)时,它会自动使用当前前缀(在本例中为admin或user)为该链接添加前缀,而我只是简单地将其设置为非前缀链接。(也就是说,如果cake只在相关链接中实际指定了前缀时才使用前缀,而不是在每个简单的html助手控制器action link上继续使用它们,我更愿意这样做。你有没有尝试过这个$html->link('users',array('prefix'=>'','controller'=>'users','action'=>'index'))
为了避免自动前缀?他在正确的轨道上$html->link('users',array('controller'=>'users','action'=>'index','admin'=>false);
好的,所以我认为'admin'=>false只适用于管理员前缀,但也可以用于其他前缀,在我的例子中,'user'=>false(以及admin false)@davideyell谢谢你的更正。如果你把它作为一个答案发布,那就太棒了。
$html->link('users', array('prefix' => $this->params['prefix'],'controller' => 'users','action' => 'index'))