在同一个应用程序中构建管理员。它不会降低安全性。您可以使用Prefix Routing轻松控制管理员用户可以访问哪些控制器方法。您还可以根据路由前缀更改视图布局。如果你需要更细粒度的东西,Cake 支持复杂权限系统的访问控制列表。
最后,如果您使用一组模型和控制器,您的应用程序将更易于维护。
这是我在app_controller.php
. 这是一个内置于 CakePHP 1.2 的应用程序,因此可能需要针对较新的版本进行轻微更新。这假设任何注册用户都可以访问管理 URL,但这很容易改变:
function beforeFilter(){
if (isset($this->params['prefix']) && $this->params['prefix'] == 'admin') {
if (!$this->Session->check('User')) {
// save the url in the session so that you can redirect there after login
$this->Session->write('lastPageVisited', $this->params['url']['url']);
$this->redirect('/users/login/');
exit();
}
// set the admin layout
$this->layout = 'admin';
}
}