コード例 #1
0
 /**
  */
 public function actionPopulateclassdivisions()
 {
     ClassDivision::deleteAll();
     $classes = AClass::find()->all();
     $groups = [];
     foreach ($classes as $class) {
         $key = join('|', [$class->room_id, $class->day_id, $class->type_id, $class->frequency_id, $class->start_time]);
         //echo $key . ': ' . $class->fullName . PHP_EOL;
         if (!isset($groups[$key])) {
             $groups[$key] = [];
         }
         $groups[$key][] = $class;
     }
     foreach ($groups as $key => $group) {
         $classId = null;
         foreach ($group as $class) {
             // use the ID of the first class in the group for all of them
             if (null === $classId) {
                 $classId = $class->id;
             }
             $cd = new ClassDivision();
             $cd->class_id = $classId;
             $cd->division_id = $class->division_id;
             if (!$cd->save()) {
                 echo $key . ' failed to save' . PHP_EOL;
             }
         }
     }
 }
コード例 #2
0
 /**
  * @return \yii\db\ActiveQuery
  */
 public function getClassDivisions()
 {
     return $this->hasMany(ClassDivision::className(), ['division_id' => 'id']);
 }