public function afterSave($insert, $changedAttributes) { //$oldCategorias = array("0"=>1); $actualItens = []; if (($actualItens = AuthItemChild::find()->andWhere("parent = '{$this->name}'")->asArray()->all()) !== null) { $actualItens = ArrayHelper::getColumn($actualItens, 'child'); } //verifica se é um array $this->itemIds = is_array($this->itemIds) ? $this->itemIds : [$this->itemIds]; $inserirItens = array_diff($this->itemIds, $actualItens); if (!empty($inserirItens)) { //save the relations foreach ($inserirItens as $id) { $r = new AuthItemChild(); $r->parent = $this->name; $r->child = $id; $r->save(); } } $delItens = array_diff($actualItens, $this->itemIds); if (!empty($delItens)) { foreach ($delItens as $remove) { $r = AuthItemChild::findOne(['child' => $remove, 'parent' => $this->name]); $r->delete(); } } parent::afterSave($insert, $changedAttributes); //don't forget this }
/** * Creates a new AuthItemChild model. * If creation is successful, the browser will be redirected to the 'view' page. * @return mixed */ public function actionCreate() { $model = new AuthItemChild(); if ($model->load(Yii::$app->request->post()) && $model->save()) { return $this->redirect(['view', 'parent' => $model->parent, 'child' => $model->child]); } else { return $this->render('create', ['model' => $model]); } }
/** * @return string|\yii\web\Response */ public function actionCreate() { $model = new AuthItemChild(); if ($model->load(Yii::$app->request->post()) && $model->save()) { Yii::$app->getSession()->setFlash('permission-create-success'); return $this->redirect(['index']); } else { return $this->render('create', ['model' => $model]); } }