2012-03-09 69 views
2

我使用cakephp 2.0 ACL与Auth组件。 我的组表包含三种类型的管理员,经理和用户Cakephp用户类型(组名称)名称不附加在路由

我启用了core.php中的工艺路线文件

Configure::write('Routing.prefixes', array('admin','manager','user')); 

default.thtml中文件包含以下行链接到产品:

$this -> Html -> link(__('Products'), array('controller' => 'products','action' => index')); 

当我以管理员身份登录时,上面的链接是http://www.example.com/admin/products/index
当我以管理员身份登录时,上面的链接是http://www.example.com/products/index 组名“manage R”产品

我需要下面的输出,当我登录作为经理

http://www.example.com/manager/products/index    

回答

1

尝试在视图中这行之前没有附加:

$this->Html->link(__('Products'), array('controller' => 'products','action' => index','manager'=>true)); 

如,增加'manager'=>true到传递给HtmlHelper::link()方法的选项列表,或者您在URL中需要的任何前缀名称(即管理员,经理...)。

制定其前缀是当前使用的,你可以使用这个片段:

$opts = Router::parse(Router::url('')); 
$prefix = $opts['prefix']; // Contains 'admin' or 'manager', etc. 

然后,您可以通过$prefix=>true作为一个选项的HTML链接的方法。

+0

如果我给manager => TRUE,并且以ADMIN身份登录,则URL是http://www.example.com/manager/products/index。 – AnNaMaLaI 2012-03-13 07:39:57

+0

是的 - 你传递的前缀名称的值为真,所以你会设置''admin'=> true'在你的情况。 – 2012-03-13 08:49:57

+0

我对管理员和管理员都使用相同的链接..所以,如果我给这个$ this-> Html-> link(__('Products'),array('controller'=>'products','action'= > index','manager'=> true,'admin'=> true));是正确的 ? – AnNaMaLaI 2012-03-13 10:56:32

相关问题