Пример #1
0
 /**
  * @return string
  */
 public function run()
 {
     $modelSeacrhClass = $this->modelSearchClassName;
     if (!$modelSeacrhClass) {
         $search = new Search($this->controller->modelClassName);
         $dataProvider = $search->search(\Yii::$app->request->queryParams);
         $searchModel = $search->loadedModel;
     } else {
         $searchModel = new $modelSeacrhClass();
         $dataProvider = $searchModel->search(\Yii::$app->request->queryParams);
     }
     //Дополнительная обработка Дата провайдера
     if ($this->dataProviderCallback && is_callable($this->dataProviderCallback)) {
         $dataProviderCallback = $this->dataProviderCallback;
         $dataProviderCallback($dataProvider);
     }
     //Дополнительная обработка Дата провайдера
     if ($this->filter && is_callable($this->filter)) {
         $filter = $this->filter;
         $filter($dataProvider, \Yii::$app->request->queryParams);
     }
     $gridConfig = ['dataProvider' => $dataProvider, 'filterModel' => $searchModel, 'adminController' => $this->controller, 'columns' => $this->columns];
     $gridConfig = ArrayHelper::merge($gridConfig, $this->gridConfig);
     $this->viewParams = ['searchModel' => $searchModel, 'dataProvider' => $dataProvider, 'controller' => $this->controller, 'columns' => $this->columns, 'gridConfig' => $gridConfig];
     return parent::run();
 }
Пример #2
0
 public function run()
 {
     $modelClassName = $this->controller->modelClassName;
     $model = new $modelClassName();
     $scenarios = $model->scenarios();
     if ($scenarios && $this->modelScenario) {
         if (isset($scenarios[$this->modelScenario])) {
             $model->scenario = $this->modelScenario;
         }
     }
     $rr = new RequestResponse();
     if (\Yii::$app->request->isAjax && !\Yii::$app->request->isPjax) {
         return $rr->ajaxValidateForm($model);
     }
     if ($rr->isRequestPjaxPost()) {
         if ($model->load(\Yii::$app->request->post()) && $model->save($this->modelValidate)) {
             \Yii::$app->getSession()->setFlash('success', \Yii::t('app', 'Saved'));
             if (\Yii::$app->request->post('submit-btn') == 'apply') {
                 return $this->controller->redirect(UrlHelper::constructCurrent()->setCurrentRef()->enableAdmin()->setRoute($this->controller->modelDefaultAction)->normalizeCurrentRoute()->addData([$this->controller->requestPkParamName => $model->{$this->controller->modelPkAttribute}])->toString());
             } else {
                 return $this->controller->redirect($this->controller->indexUrl);
             }
         } else {
             \Yii::$app->getSession()->setFlash('error', \Yii::t('app', 'Could not save'));
         }
     }
     $this->viewParams = ['model' => $model];
     return parent::run();
 }