我正在创建一个基本的学生/课程脚本。我有3个与我合作的模特:学生,课程,学生课程。以下是关系:
学生:
课程:
StudentCourse:
现在,当我试图让所有已经报名参加课程的学生(因为它也会返回课程的教师并弄乱阵列)时,我遇到了一些问题。如何才能使“课程”中的“belongsTo”使用名为“讲师”的别名(这样当我获得“课程”的数据时,我有:$ course ['Course'](课程数据), $ course ['Instructor'](讲师的数据,在课程表中由student_id引用)和$ course ['Students'](学生报名参加课程)?
以下是控制器/查看电话:http://bin.cakephp.org/view/645421766
答案 0 :(得分:3)
我认为你应该确实改变你的架构。学生和教师都是用户。因此,请使用ID,名称,电子邮件密码等制作用户模型。我建议添加名为Participant或CourseParticipant的其他模型。所以,课程有很多参与者。您的参与者模型包含course_id,user_id,“as”或“role”(学生,教师等)。
您可以使用课程hasMany Participant:
array(
'Student' => array(
'className' => 'Participant',
'conditions' => array('Student.as' => 'student')
)
);
......对于教练来说也是如此。查看'as'字段的条件和用法?我不推荐habtm(我从不推荐蛋糕habtm ...我认为你在StudentCource的正确轨道上)。
让故事指导您的架构。用户可以是学生和教师。课程包括作为学生或教师参与的用户。有一天,您可能会有用户作为助理参加课程。
现在你有各种有趣的数据。本讲师讲授的课程。这个学生已经上过的课程。
*编辑:我应该补充说,蛋糕会议建议您的参与者类名为CourseUser。