public function actionIndex() { if (Helper::checkRoute('index')) { $searchModel = new ProvinceSearch(); $dataProvider = $searchModel->search(Yii::$app->request->queryParams); if (Yii::$app->request->post('hasEditable')) { $ID = \Yii::$app->request->post('editableKey'); $model = Customers::findOne($ID); $out = Json::encode(['output' => '', 'message' => '']); // fetch the first entry in posted data (there should // only be one entry anyway in this array for an // editable submission) // - $posted is the posted data for Book without any indexes // - $post is the converted array for single model validation $post = []; $posted = current($_POST['Customers']); $post['Customers'] = $posted; // load model like any single model validation if ($model->load($post)) { // can save model or do something before saving model $model->save(); // custom output to return to be displayed as the editable grid cell // data. Normally this is empty - whereby whatever value is edited by // in the input by user is updated automatically. $output = ''; // specific use case where you need to validate a specific // editable column posted when you have more than one // EditableColumn in the grid view. We evaluate here a // check to see if buy_amount was posted for the Book model if (isset($posted['CUST_KD_ALIAS'])) { // $output = Yii::$app->formatter->asDecimal($model->EMP_NM, 2); $output = $model->CUST_KD_ALIAS; } // similarly you can check if the name attribute was posted as well // if (isset($posted['name'])) { // $output = ''; // process as you need // } $out = Json::encode(['output' => $output, 'message' => '']); // return ajax json encoded response and exit echo $out; return; } } return $this->render('index', ['searchModel' => $searchModel, 'dataProvider' => $dataProvider]); } else { Yii::$app->user->logout(); $this->redirect(array('/site/login')); // } }
protected function findModelcust($id) { if (($model = Customers::findOne($id)) !== null) { return $model; } else { throw new NotFoundHttpException('The requested page does not exist.'); } }