public function actionIndex() { Yii::$app->controller->enableCsrfValidation = false; $success = false; $path = false; if (Yii::$app->request->isPost) { $model_id = (int) Yii::$app->request->post('model_id'); $model_name = Yii::$app->request->post('model_name'); $option_id = (int) Yii::$app->request->post('option_id'); // Находим Options /** * @var $option Options */ $option = Options::find()->where(['model_id' => $model_id, 'model' => $model_name, 'option_id' => $option_id])->one(); // Удаляем файл и запись в Options if ($option) { if (unlink($_SERVER['DOCUMENT_ROOT'] . $option->value)) { if ($option->delete()) { $success = true; $path = $option->value; } } } // Находим ChildOptions если есть /** * @var $option ChildOptions */ $child_option = ChildOptions::find()->where(['model_id' => $model_id, 'model' => $model_name, 'option_id' => $option_id])->one(); // Если находим - удаляем файл и запись в ChildOptions if ($child_option) { if (unlink($_SERVER['DOCUMENT_ROOT'] . $child_option->value)) { if ($child_option->delete()) { $success = true; $path = $child_option->value; } } } return Json::encode(['success' => $success, 'path' => $path]); } }
/** * Получаем значение параметра конкретной модели по алиасу * * @param $alias string string * @param $relations_model_name string * * @return mixed */ public function getChildOptionValueByAlias($alias, $relations_model_name = 'Cats-Items') { /** * @var $optionList OptionsList * @var $option Options */ $optionList = OptionsList::find()->where(['alias' => $alias])->one(); $option = ChildOptions::find()->where(['model_id' => $this->owner->id, 'model' => $relations_model_name, 'option_id' => $optionList->id])->one(); if (in_array($optionList->type->alias, MyHelper::TYPES_WITH_PRESET_ARRAY)) { $return = $optionList->preset->value($option->value); } elseif (in_array($optionList->type->alias, MyHelper::TYPES_WITH_MULTIPLE_PRESET_ARRAY)) { $optionM = ChildOptionMultiple::find()->where(['value' => $option->value])->one(); $return = $optionList->preset->value($optionM->value); } else { $return = $option->value; } return $return; }