Exemplo n.º 1
0
 /**
  * @return \yii\db\ActiveQuery
  */
 public function getContact_groups()
 {
     return $this->hasMany(Contact_to_contact_group::className(), ['group_id' => 'id']);
 }
Exemplo n.º 2
0
 public function afterSave($insert, $changedAttributes)
 {
     $connection = \Yii::$app->db;
     $queryTuttiGruppi = $this->getContact_groups()->asArray()->all();
     $arrayTuttiGruppi = ArrayHelper::map($queryTuttiGruppi, 'id', 'name');
     // if not a new contact, delete all groups
     if (!$insert) {
         Contact_to_contact_group::deleteAll('contact_id = :id', [':id' => $this->id]);
     }
     $gruppiSelezionati = $this->gruppi;
     $gruppiScrittura = Contact_group::getGruppi();
     // aggiunge i gruppi di cui fa parte il contatto e che non ho il permesso di modificare
     foreach ($arrayTuttiGruppi as $key => $value) {
         if (!array_key_exists($key, $gruppiScrittura)) {
             array_push($gruppiSelezionati, $key);
         }
     }
     $lenght = count($gruppiSelezionati);
     $contatti = array_fill(0, $lenght, $this->id);
     $gruppicontatti = array_map(null, $contatti, $gruppiSelezionati);
     $connection->createCommand()->batchInsert('contact_to_contact_group', ['contact_id', 'contact_group_id'], $gruppicontatti)->execute();
 }