我有以下型号:Students, Teachers, Administrator
我想要做的是有一个管理菜单,我可以列出所有学生和老师,创建新的,并编辑它们。
实现这一目标的最佳方法是什么?将模型导入管理控制器?
答案 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,或者在教师和学生之间建立任意关系。