Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/261.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
前缀路由cakephp_Php_Cakephp_Routing - Fatal编程技术网

前缀路由cakephp

前缀路由cakephp,php,cakephp,routing,Php,Cakephp,Routing,问题经修正如下: 我了解“admin”=>true/false的用法,在我的例子中也是“user”=>true/false,并且可以创建适合于每个场景的链接,但是我正在寻找一种方法将其实现到routes文件中。 例如,routes文件中已经存在以下内容: Router::connect('/pages/*', array('controller' => 'pages', 'action' => 'display')); 但是,我也希望任何带有前缀的链接都能执行相同的重定向,并删除前

问题经修正如下: 我了解“admin”=>true/false的用法,在我的例子中也是“user”=>true/false,并且可以创建适合于每个场景的链接,但是我正在寻找一种方法将其实现到routes文件中。 例如,routes文件中已经存在以下内容:

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'))