在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.
当我第一次阅读文档时,我的印象是我可以运行两条路线,而不仅仅是一条路线。还有什么我需要做的吗?
答案 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使用正确的管理员前缀,在这种情况下是“超级用户”。