示例#1
0
文件: Kurs.php 项目: tsyrya/mybriop
 /**
  * @return ActiveQuery
  */
 public function getKategorii_slushatelej_rel()
 {
     return $this->hasMany(KategoriyaSlushatelya::className(), ['id' => 'kategoriya_slushatelya'])->viaTable('kategoriya_slushatelya_kursa', ['kurs' => 'id']);
 }
示例#2
0
 private function kategoriiSlushatelej()
 {
     if ($this->_kategoriiSlushatelej === null) {
         $data = KategoriyaSlushatelya::find()->orderBy('nazvanie')->asArray()->all();
         $this->_kategoriiSlushatelej = ArrayHelper::map($data, 'id', 'nazvanie');
     }
     return $this->_kategoriiSlushatelej;
 }
示例#3
0
 private function saveInternal()
 {
     parent::save(false);
     $this->unlinkAll('kategorii_slushatelej_rel', true);
     // user select
     foreach ($this->kategorii_slushatelej as $id) {
         /* @var $kat KategoriyaSlushatelya */
         if ($kat = KategoriyaSlushatelya::findOne($id)) {
             $this->link('kategorii_slushatelej_rel', $kat);
         }
     }
     // user input
     if (isset($this->kategorii_slushatelej_input)) {
         foreach ($this->kategorii_slushatelej_input as $name) {
             $kat = new KategoriyaSlushatelya();
             $kat->nazvanie = $name;
             $kat->save();
             $this->link('kategorii_slushatelej_rel', $kat);
         }
     }
     //garbage-collect unused kategorii
     $unusedKats = KategoriyaSlushatelya::find()->select('kategoriya_slushatelya.id')->leftJoin('kategoriya_slushatelya_kursa', 'kategoriya_slushatelya.id = kategoriya_slushatelya_kursa.kategoriya_slushatelya')->where(['kategoriya_slushatelya_kursa.kategoriya_slushatelya' => null])->groupBy('kategoriya_slushatelya.id');
     foreach ($unusedKats->asArray()->batch() as $rows) {
         KategoriyaSlushatelya::deleteAll(['id' => array_filter($rows)]);
     }
     return true;
 }