예제 #1
0
 public function actionFilter2()
 {
     $teachers = [];
     $students = [];
     $teachers = Teacher::findBySql("\n            select t.name, t.id from (\n                select st2.teacher_id st2, st3.teacher_id st3, count(st3.student_id) cnt from teacher_student st2\n                    left join teacher_student st3 on st3.student_id = st2.student_id and st2.teacher_id != st3.teacher_id\n                    where st3.teacher_id is not null group by st3.teacher_id, st2.teacher_id\n                    ) res \n                    left join teacher t on t.id=st2\n                    left join teacher t2 on t2.id=st3\n                    order by cnt DESC limit 2\n        ")->all();
     if (count($teachers) == 2) {
         $students = Student::findBySql("\n                select * from teacher_student st\n                left join student t on t.id = st.student_id \n                left join teacher_student st2 on st2.teacher_id = :teacher1 and st2.student_id = st.student_id\n                where st.teacher_id = :teacher2 and st2.teacher_id is not null\n            ", [':teacher1' => $teachers[0]->id, ':teacher2' => $teachers[1]->id])->all();
     }
     return $this->render('filter2', ['teachers' => $teachers, 'students' => $students]);
 }
예제 #2
0
 public function beforeSave($insert)
 {
     // hash password on before saving the record:
     if ($this->isNewRecord) {
         // get student id
         $id = $this->usr_type_id;
         $sql = 'SELECT * FROM student where st_id=' . $id;
         $stdnt = Student::findBySql($sql)->one();
         $this->usr_id = $stdnt->st_disp_id;
         $this->usr_pass = $this->hashPassword($this->usr_pass);
     }
     $this->usr_is_teacher = 0;
     $this->usr_is_admin = 0;
     $this->usr_is_su = 0;
     return parent::beforeSave($insert);
 }