/** * Lists all Category models. * @return mixed */ public function actionIndex() { $searchModel = new CategorySearch(); $dataProvider = $searchModel->search(Yii::$app->request->getQueryParams()); return $this->render('index', ['dataProvider' => $dataProvider, 'searchModel' => $searchModel]); }
/** * Lists all Category models. * @return mixed */ public function actionIndex() { $searchModel = new CategorySearch(); $dataProvider = $searchModel->search(Yii::$app->request->queryParams); $categories = Category::find()->orderBy('id')->asArray()->isParent()->all(); if (Yii::$app->request->post()) { // validate if there is a editable input saved via AJAX if (Yii::$app->request->post('hasEditable')) { $categoryId = Yii::$app->request->post('editableKey'); $modelEdit = $this->findModel($categoryId); //$model = $this->findOne($atid); // store a default json response as desired by editable $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['Category']); $post['Category'] = $posted; // load model like any single model validation if ($modelEdit->load($post)) { // can save model or do something before saving model $modelEdit->updated_at = new Expression('NOW()'); if ($modelEdit->parent_id == 0) { $modelEdit->parent_id = null; } $modelEdit->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['parent_id'])) { //$output = Yii::$app->formatter->asInteger($modelEdit->parent_id); if ($posted['parent_id'] == 0) { $output = "ROOT"; } else { $output = $modelEdit->parent->title; } } if (isset($posted['title'])) { //$output = Yii::$app->formatter->asNText($modelEdit->parent_id); $output = $modelEdit->title; } if (isset($posted['status'])) { //$output = Yii::$app->formatter->asNText($modelEdit->parent_id); $output = $modelEdit->status ? Yii::t('db', 'Active') : Yii::t('db', 'Inactive'); } // 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, 'categories' => $categories]); }
/** * Все * * @return string */ public function actionIndex() { $searchModel = new CategorySearch(); $dataProvider = $searchModel->search(); return $this->render('index', ['dataProvider' => $dataProvider]); }