CakePHP:可以创建其他模型的管理员模型

时间:2011-07-29 23:59:55

标签: cakephp

我有以下型号:Students, Teachers, Administrator

我想要做的是有一个管理菜单,我可以列出所有学生和老师,创建新的,并编辑它们。

实现这一目标的最佳方法是什么?将模型导入管理控制器?

2 个答案:

答案 0 :(得分:1)

正如@Anh所说,最直接的方法是分别在学生和教师控制器中进行admin_次动作。您可以从任何控制器访问任何模型。如果您想在学生控制器中列出教师,反之亦然,您可以这样做 默认情况下,控制器仅导入同名模型。如果该模型与其他模型相关联,您可以通过$this->Student->Teacher之类的关联访问其他模型 如果您要在控制器中执行此操作,只需使用$uses属性将必要的模型直接加载到控制器中:

class StudentsController extends AppController {
    public $uses = array('Student', 'Teacher');
}

现在您可以直接使用这两种型号。

答案 1 :(得分:0)

使用前缀路由。在教师控制器中,为admin(admin_index(),admin_add()等创建可以添加/编辑/删除教师记录的操作。对于学生控制器也一样。

编辑:控制器是您可以操纵特定模型(和相关模型)的地方。如果您希望学生和教师都在某个页面上,这两个模型是否相互关联?等等,他们不是网站的用户吗?所以你想要的是:管理员可以CRUD用户,对吗?所以你可以在admin / users / index页面中列出所有用户(我想在这里展示的是:一个问题有时会导致新的数据库设计,因为你意识到你真正想要这些模型的东西)。

要么是这样,要么你可以通过以下任一种方式进行快速而肮脏的修复:在你选择的控制器中加载loadModel,或者使用$ uses,或者在教师和学生之间建立任意关系。