Blame view

backend/controllers/DetailsDescriptionController.php 3.93 KB
816a590c   Mihail   add details descr...
1
2
3
4
  <?php
  
  namespace backend\controllers;
  
ec9547bf   Mihail   work on details desc
5
  use common\models\DetailsCriteria;
816a590c   Mihail   add details descr...
6
7
8
9
  use Yii;
  use common\models\DetailsDescription;
  use common\models\DetailsDescriptionSearch;
  use backend\components\base\BaseController;
ec9547bf   Mihail   work on details desc
10
  use yii\data\ActiveDataProvider;
6ccb6e69   Mihail   add delete price ...
11
  use yii\web\HttpException;
816a590c   Mihail   add details descr...
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
  use yii\web\NotFoundHttpException;
  use yii\filters\VerbFilter;
  
  /**
   * DetailsDescriptionController implements the CRUD actions for DetailsDescription model.
   */
  class DetailsDescriptionController extends BaseController
  {
      public $layout = "/column";
  
      public function behaviors()
      {
          return [
              'verbs' => [
                  'class' => VerbFilter::className(),
                  'actions' => [
                      'delete' => ['post'],
                  ],
              ],
          ];
      }
  
      /**
       * Lists all DetailsDescription models.
       * @return mixed
       */
      public function actionIndex()
      {
          $searchModel = new DetailsDescriptionSearch();
          $dataProvider = $searchModel->search(Yii::$app->request->queryParams);
  
          return $this->render('index', [
              'searchModel' => $searchModel,
              'dataProvider' => $dataProvider,
          ]);
      }
  
816a590c   Mihail   add details descr...
49
      /**
edfa67b1   Mihail   add delete price ...
50
       * Displays a single DetailsDescription model.
816a590c   Mihail   add details descr...
51
52
53
54
       * @param string $name
       * @param string $brand
       * @return mixed
       */
edfa67b1   Mihail   add delete price ...
55
      public function actionView($name, $brand)
816a590c   Mihail   add details descr...
56
      {
ec9547bf   Mihail   work on details desc
57
          $criteria_model = new DetailsCriteria();
6ccb6e69   Mihail   add delete price ...
58
59
          $query = DetailsCriteria::find()->where( ['name' => $name, 'brand' => $brand] );
          $count = $query->count('*');
ec9547bf   Mihail   work on details desc
60
61
62
63
64
65
66
  
          $dataProvider = new ActiveDataProvider([
              'query' => $query,
              'pagination' => false,
          ]);
  
  
edfa67b1   Mihail   add delete price ...
67
68
          return $this->render('view', [
              'model' => $this->findModel($name, $brand),
ec9547bf   Mihail   work on details desc
69
70
              'criteria_model' => $criteria_model,
              'dataProvider' => $dataProvider,
6ccb6e69   Mihail   add delete price ...
71
              'count' => $count,
edfa67b1   Mihail   add delete price ...
72
          ]);
816a590c   Mihail   add details descr...
73
74
      }
  
6ccb6e69   Mihail   add delete price ...
75
76
77
78
79
80
81
82
83
84
85
86
87
      public function actionCreateCriteria()
      {
          $criteria_model = new DetailsCriteria();
          if ( $criteria_model->load( Yii::$app->request->post() ) && $criteria_model->save() ) {
  
              return $this->redirect(['view', 'name' => $criteria_model->name, 'brand' => $criteria_model->brand]);
          } else {
              throw new HttpException('Не удалось записать характеристики в базу данных');
  
          }
  
      }
  
9b0a69f3   Mihail   add details crite...
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
      public function actionDeleteCriteria()
      {
  
          $params = Yii::$app->request->get();
          $criteria_model = $this->findCriteriaModel( $params );
  
          if ( $criteria_model->delete() ) {
  
              return $this->redirect(['view', 'name' => $params['name'], 'brand' => $params['brand']]);
  
          } else {
  
              throw new HttpException('Не удалось удалить характеристики из базы данных');
  
          }
  
      }
  
6ccb6e69   Mihail   add delete price ...
106
  
816a590c   Mihail   add details descr...
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
      /**
       * Finds the DetailsDescription model based on its primary key value.
       * If the model is not found, a 404 HTTP exception will be thrown.
       * @param string $name
       * @param string $brand
       * @return DetailsDescription the loaded model
       * @throws NotFoundHttpException if the model cannot be found
       */
      protected function findModel($name, $brand)
      {
          if (($model = DetailsDescription::findOne(['name' => $name, 'brand' => $brand])) !== null) {
              return $model;
          } else {
              throw new NotFoundHttpException('The requested page does not exist.');
          }
      }
ec9547bf   Mihail   work on details desc
123
  
9b0a69f3   Mihail   add details crite...
124
125
126
127
128
129
130
131
132
133
134
135
136
137
      protected function findCriteriaModel( $params )
      {
          if ( isset($params['name'])
              && isset($params['brand'])
              && isset($params['key'])
              && ($model = DetailsCriteria::findOne(['name' => $params['name'], 'brand' => $params['brand'], 'key' => $params['key']])) !== null ) {
  
              return $model;
  
          } else {
              throw new NotFoundHttpException('Запрашиваемая характеристика не существует.');
          }
      }
  
ec9547bf   Mihail   work on details desc
138
  
816a590c   Mihail   add details descr...
139
  }