我正在使用cakephp进行旅游系统,我有两种不同类型的最终用户,一种是Admin,另一种是注册用户,所以我需要为这些用户提供两种不同的视图,并且用户不应该访问任何用户Admin模块的控制器,
现在我不知道如何将这两个用户分开。
答案 0 :(得分:2)
听起来你正在寻找的是Prefix Routing,它应该为你提供你需要的一切。
您的网址可以由管理员作为前缀(如果适用于相关用户):
http://example.com/admin/posts
路由到(在帖子控制器中):
public function admin_index(){
...
}
呈现app/View/Posts/admin_index.ctp
视图。
我不会多说什么,因为这方面的文档非常详尽。请注意,如果您开始引入两个以上级别的权限(例如,用户,超级用户,管理员),则前缀路由不太合适。您需要查看Access Control Lists而不是框架所涵盖的内容。
答案 1 :(得分:0)
大家好,我有另一种方法来解决这个问题,即配置每个控制器。只需将以下代码放在您不想提供访问权限的控制器中
即可
public function beforeFilter(){
if($ this-> Auth-> user('role')=='regular')
{
$this->Session->setFlash('You cannot access');<br>
$this->redirect(array('controller'=>'users','action' => 'index'));<br>
}
}
因此,如果有人以普通用户身份登录,他/她将重定向到用户控制器或您想要指定的任何其他用户