如何在单个页面中显示关联项目?

时间:2010-03-16 02:40:13

标签: cakephp views

关于cakephp,我的数据库结构如下:

1。)班级

  • ID
  • 名称
  • STUDENT_COUNT

2。)学生

  • ID
  • 名称
  • 类标识码
  • grade_id

3。)成绩

  • ID
  • 名称

我的问题: 我希望我的统计页面的布局类似于 -

1。)1级(学生总数= XX)

  • A级学生= XX
  • B级学生= XX
  • C班学生= XX

2。)2级(学生总数= XX)

  • A级学生= XX
  • B级学生= XX
  • C班学生= XX

我正在申请 counterCache =>真的在我的学生模型中,这样我就可以使用一个查找('全部')功能获得每个课堂上的学生总数,但每个年级的学生人数如何?以及如何将2个查询组合成一个显示器?

2 个答案:

答案 0 :(得分:0)

不确定,但我认为你可以这样试试:

$students = $this->Student->find('all',array('condtions'=>array('class_id'=>array($class1id,$class2id)),'group'=>array('class_id','grade_id')));

答案 1 :(得分:0)

我想您可能想重新访问您的架构。你真的只想要一个学生只属于一个班级吗?

我建议将课程设置为相同。将您的学生模型更改为id,name。然后设置学生HABTM成绩,设置成绩hasAndBelongsTo等级。您将需要一个加入表,grade_students,它将链接学生和成绩。

现在每个学生都可以拥有> 1个班级,虽然每个班级每个学生只限1个年级(如果学生重复上课怎么办?这应该由您的商业设计决定......)

最后,通过此设置,您将需要使用Containable行为。它允许您根据相关模型的标准从学生模型中过滤(通常使用HABTM,否则不能这样做)。