2011-06-14 81 views
4

我正在寻找一种在CakePHP中创建管理员部分的最佳方法。我看过像BrowniePHP和其他的插件,但我对使用插件并不完全满意。所以我试图创造我自己的将包含我需要的东西。我看过一些教程,但找不到正确的答案。CakePHP - 创建管理部分的最佳方法是什么

我目前正在创建一个庞大的应用程序,这是大约10%完成,但我现在觉得需要有一个管理部分,然后继续前进。

基本上我想要一个部分,我可以添加新文章,批准评论,拒绝用户访问等。本部分只能由管理员访问。

此外,此管理员部分必须能够保存到任何其他模型。

我仍然在学习CakePHP,希望了解任何详细的指令。

回答

5

要创建管理员部分,首先要做的是手动编辑中的core.php并写入设置Routing.prefixes。这条线应该在88线附近,你只需要取消注释。
在你找不到它的情况下,它应该是这样的:

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

所以,现在您可以在控制器中写你的管理函数是这样的:

function admin_edit($id = null) { 
    //your admin function 
} 

你不自从您在控制器中编写这些函数(如其他“正常”操作)之后,需要访问每个模型。

你只需要连接的路由处理管理 - 操作:

Router::connect('/admin/:controller/:action/*', array('admin' => true, 'prefix' => 'admin', 'controller' => 'pages')); 
// 'admin' => true is a variable for you so you can check if it's an admin-action which is requested 
// 'prefix' => 'admin' means that you can write function with this prefix like above 

然后,您可以通过URL http://yourapp.com/admin/controller/action

访问这些行动如果你现在使用的Auth-Component你可以写的方法检查用户是否被允许访问这些方法。

欲了解更多信息,请阅读这些手动entrys:

Prefix-Routing
Authentication (Auth-Component)

+0

我已经启用了Routing.prefixes,并且已经为ie设置了一些操作。 admin_edit等。我只是无法看到如何将所有内容都实现到一个管理部分。然而,现在它变得更有意义,我将以这种方式接近它。我想我必须做的是让每个admin_xxxx操作都使用管理布局,在那里我可以链接到不同的控制器等。希望我能使它工作,因为这是我学习CakePHP时唯一的呃逆。迄今为止,其他一切都非常顺利和壮观。 – 2011-06-14 19:55:18

0

这是一个很好的article。您可能对thesethese的答案感兴趣。

+0

将控制器专用为管理员是否有意义,例如具有自己的admin_users表和自己的操作的管理员控制器? – 2011-06-14 14:56:53

+0

我不认为这是一个好主意。 1)http://programmers.stackexchange。com/questions/79925/cakephp-admin-panel-different-controller-for-different-group-of-tasks-or-one-for,2)http://cakephp.1045679.n5.nabble.com/Admin-控制器 - td1330414.html – bancer 2011-06-14 15:13:34

相关问题