/**
  * Updates an existing Slider model.
  * If update is successful, the browser will be redirected to the 'view' page.
  * @param null|string $id
  * @return mixed
  */
 public function actionUpdate($id = null)
 {
     $abstractModel = new BaseSliderEditModel();
     if (is_null($id)) {
         $model = new Slider();
         $model->loadDefaultValues();
     } else {
         $model = $this->findModel($id);
         if ($model->handler() !== null) {
             $abstractModel = Yii::createObject(['class' => $model->handler()->edit_model]);
             if (!empty($model->params)) {
                 $abstractModel->unserialize($model->params);
             }
         }
     }
     $post = Yii::$app->request->post();
     if ($model->load($post) && $model->validate()) {
         if ($model->handler() !== null) {
             $abstractModel = Yii::createObject(['class' => $model->handler()->edit_model]);
             if (!empty($model->params)) {
                 $abstractModel->unserialize($model->params);
             }
         }
         $abstractModel->load($post);
         if ($abstractModel->validate()) {
             $model->params = $abstractModel->serialize();
             if ($model->save()) {
                 return $this->redirectUser($model->id, true, 'index', 'update');
             } else {
                 Yii::$app->session->setFlash('error', Yii::t('app', 'Cannot save data'));
             }
         } else {
             Yii::$app->session->setFlash('error', Yii::t('app', 'Cannot save data'));
         }
     }
     $searchModel = new Slide();
     $searchModel->slider_id = $model->id;
     $dataProvider = $searchModel->search($_GET);
     return $this->render('update', ['model' => $model, 'abstractModel' => $abstractModel, 'dataProvider' => $dataProvider, 'searchModel' => $searchModel]);
 }