cakephp为什么我不能拥有管理路由和超级用户路由?

时间:2009-10-30 06:07:06

标签: cakephp

在core.php中我可以定义

Configure::write('Routing.admin', 'admin');

和/ admin / controller / index将起作用。

但如果我同时定义

Configure::write('Routing.admin', 'admin');
Configure::write('Routing.superuser', 'superuser');

并尝试查看/ superuser / blah / index /而不是说控制器不存在它说

Error: SuperuserController could not be found.

而不是说

Error: BlahController could not be found.

当我第一次阅读文档时,我的印象是我可以运行两条路线,而不仅仅是一条路线。还有什么我需要做的吗?

2 个答案:

答案 0 :(得分:4)

我相信他们正在为CakePHP 1.3做这件事,但就目前而言,我们必须作弊来完成额外的路由。这是我过去使用的方法。

// SuperUser Routing
Router::connect('/superuser/:controller',
    array('prefix' => 'superuser', 'superuser' => true));
Router::connect('/superuser/:controller/:action/*',
    array('prefix' => 'superuser', 'superuser' => true));

使用array('controller' => ...)方法生成网址存在一些问题,但我几个月内没有触及过该项目,所以我不记得所有注意事项。这至少应该给你一个起点。

CakePHP document explains this some。在讨论多个前缀时,相关部分开始大约一半。

答案 1 :(得分:0)

如果您正在使用Jason的技巧,并且无法使用数组('controller'=> ...)语法生成网址,请将其放入appcontroller:

if (isset($this->params['prefix']) && $this->params['prefix'] == 'superuser') {      Configure::write('Routing.admin', 'superuser');
}

这会强制appcontroller使用正确的管理员前缀,在这种情况下是“超级用户”。