/**
  * Creates a new OptionsList model.
  * If creation is successful, the browser will be redirected to the 'view' page.
  *
  * @return mixed
  */
 public function actionCreate()
 {
     $model = new OptionsList();
     $preset_id = null;
     if (Yii::$app->request->isPost) {
         $type_id = Yii::$app->request->post()['OptionsList']['type_id'];
         if ($type_id) {
             /**
              * @var $option_type OptionTypes
              * @var $preset      OptionPresets
              */
             $option_type = OptionTypes::find()->where(['id' => $type_id])->one();
             if ($option_type) {
                 $type_alias = $option_type->alias;
                 if (in_array($type_alias, ArrayHelper::merge(MyHelper::TYPES_WITH_PRESET_ARRAY, MyHelper::TYPES_WITH_MULTIPLE_PRESET_ARRAY))) {
                     $preset = new OptionPresets();
                     $preset->save();
                     $preset_id = $preset->id;
                 }
             }
         }
     }
     $appUrl = '/backend/';
     if ($model->load(Yii::$app->request->post()) && $model->save()) {
         if ($preset_id) {
             $model->preset_id = $preset_id;
             $model->save();
         }
         return $this->redirect(['update', 'id' => $model->id]);
     } else {
         return $this->render('create', ['model' => $model, 'appUrl' => $appUrl]);
     }
 }
 public function actions()
 {
     return ['presets' => ['class' => 'yii\\rest\\IndexAction', 'modelClass' => $this->modelClass, 'checkAccess' => [$this, 'checkAccess'], 'prepareDataProvider' => function ($action) {
         $id = Yii::$app->request->post('id');
         /**
          * @var $preset OptionPresets
          */
         $preset = OptionPresets::find()->where(['id' => $id])->one();
         return $preset ? $preset->optionPresetValues : [];
     }], 'view' => ['class' => 'yii\\rest\\ViewAction', 'modelClass' => $this->modelClass, 'checkAccess' => [$this, 'checkAccess']], 'create' => ['class' => 'yii\\rest\\CreateAction', 'modelClass' => $this->modelClass, 'checkAccess' => [$this, 'checkAccess'], 'scenario' => $this->createScenario], 'update' => ['class' => 'yii\\rest\\UpdateAction', 'modelClass' => $this->modelClass, 'checkAccess' => [$this, 'checkAccess'], 'scenario' => $this->updateScenario], 'delete' => ['class' => 'yii\\rest\\DeleteAction', 'modelClass' => $this->modelClass, 'checkAccess' => [$this, 'checkAccess']], 'options' => ['class' => 'yii\\rest\\OptionsAction']];
 }
 /**
  * Finds the OptionPresets model based on its primary key value.
  * If the model is not found, a 404 HTTP exception will be thrown.
  * @param integer $id
  * @return OptionPresets the loaded model
  * @throws NotFoundHttpException if the model cannot be found
  */
 protected function findModel($id)
 {
     if (($model = OptionPresets::findOne($id)) !== null) {
         return $model;
     } else {
         throw new NotFoundHttpException('The requested page does not exist.');
     }
 }
Example #4
0
 /**
  * @return \yii\db\ActiveQuery
  */
 public function getPreset()
 {
     return $this->hasOne(OptionPresets::className(), ['id' => 'preset_id']);
 }