/** * 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.'); } }
/** * @return \yii\db\ActiveQuery */ public function getPreset() { return $this->hasOne(OptionPresets::className(), ['id' => 'preset_id']); }