Cakephp用户类型(组名)名称未附加在路由中

时间:2012-03-09 12:31:49

标签: cakephp cakephp-2.0

我正在使用带有Auth组件的cakephp 2.0 ACL。   我的群组表包含3种类型的管理员,经理和用户

我在Core.php文件中启用了Routings

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

default.ctp文件包含以下链接到产品的行:

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

当我以管理员身份登录时,上述链接为http://www.example.com/admin/products/index
当我以经理身份登录时,上面的链接是http://www.example.com/products/index 组名称“manager”未在产品之前附加

当我以管理员身份登录时,我需要以下输出

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

1 个答案:

答案 0 :(得分:1)

在视图中尝试以下行:

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

同样,将'manager'=>true添加到传递给HtmlHelper::link()方法的选项列表中,或者在URL中需要的前缀名称(即admin,manager ...)。

要确定当前使用的前缀,您可以使用以下代码段:

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

然后,您可以将$prefix=>true作为Html链接方法的选项传递。