浏览代码

Get class students

Andrea Fazzi 5 年之前
父节点
当前提交
122d29763d
共有 1 个文件被更改,包括 12 次插入0 次删除
  1. 12 0
      orm/class.go

+ 12 - 0
orm/class.go

@@ -16,6 +16,7 @@ SELECT teachers.* FROM activities
 INNER JOIN teachers on teachers.id=activities.teacher_id
 WHERE class_id=?
 `
+	selectClassStudents = "SELECT * FROM students WHERE class_id=?"
 )
 
 type Class struct {
@@ -112,6 +113,10 @@ func GetClassesAll(args map[string]string) (interface{}, error) {
 		class.GetTeachers()
 	}
 
+	for _, class := range classes {
+		class.GetStudents()
+	}
+
 	for _, class := range classes {
 		class.GetActivities()
 	}
@@ -210,6 +215,13 @@ func (c *Class) GetTeachers() ([]*Teacher, error) {
 	return c.Teachers, nil
 }
 
+func (c *Class) GetStudents() ([]*Student, error) {
+	if err := DB().Raw(selectClassStudents, c.ID).Scan(&c.Students).Error; err != nil {
+		return nil, err
+	}
+	return c.Students, nil
+}
+
 func (c *Class) GetActivities() ([]*Activity, error) {
 	if err := DB().Preload("Teacher").Preload("Subject").Preload("Class").Where("class_id=?", c.ID).Find(&c.Activities).Error; err != nil {
 		return nil, err