public function actionSetAlias() { $banks = Yii::$app->request->get('bank'); if (empty($banks)) { $error = "Fehler: Keine Bank wurde ausgewählt"; Yii::$app->session->setFlash('error', $error); return $this->redirect(['/bank/placeholders']); } $sBanks = "'" . join("','", $banks) . "'"; $action = Yii::$app->request->post('action'); if ($action == 'add') { $addAlias = Yii::$app->request->post('alias'); foreach ($banks as $bank) { if ($addAlias['new']['original'] && $addAlias['new']['alias']) { $present = Alias::findOne(['original' => $addAlias['new']['original'], 'b_id' => $bank]); if (!$present) { $alias = new Alias(); $alias->b_id = $bank; $alias->original = $addAlias['new']['original']; $alias->alias = $addAlias['new']['alias']; $alias->save(); } } } } $sql = "SELECT original, alias, count(*) as cnt FROM {{%alias}}\n\t\t\t\tWHERE b_id IN ({$sBanks})\n\t\t\t\tGROUP BY original, alias"; $command = Yii::$app->db->createCommand($sql); $aliases = $command->queryAll(); $aliasesData = Yii::$app->request->post('alias'); if (strpos($action, 'save') !== false) { $key = explode('-', $action)[1]; $aliasToSave = $aliases[$key]; if ($aliasesData[$key]['original'] && $aliasesData[$key]['alias']) { foreach ($banks as $bank) { $alias = Alias::findOne(['original' => $aliasToSave['original'], 'b_id' => $bank]); $alias->original = $aliasesData[$key]['original']; $alias->alias = $aliasesData[$key]['alias']; $alias->save(); } } } if (strpos($action, 'delete') !== false) { $key = explode('-', $action)[1]; $aliasToDelete = $aliases[$key]; foreach ($banks as $bank) { Alias::findOne(['original' => $aliasToDelete['original'], 'b_id' => $bank])->delete(); } } $sql = "SELECT original, alias, count(*) as cnt FROM {{%alias}}\n\t\t\t\tWHERE b_id IN ({$sBanks})\n\t\t\t\tGROUP BY original, alias"; $command = Yii::$app->db->createCommand($sql); $aliases = $command->queryAll(); return $this->render('alias', ['banks' => Bank::findAll(['b_id' => $banks]), 'aliases' => $aliases]); }