/** * @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(); }
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(); }