Beispiel #1
0
 /**
  * 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]);
 }