Blame view

backend/controllers/DetailsDescriptionController.php 3.93 KB
6cc97b30   Mihail   add details descr...
1
2
3
4
  <?php
  
  namespace backend\controllers;
  
1c34c1b5   Mihail   work on details desc
5
  use common\models\DetailsCriteria;
6cc97b30   Mihail   add details descr...
6
7
8
9
  use Yii;
  use common\models\DetailsDescription;
  use common\models\DetailsDescriptionSearch;
  use backend\components\base\BaseController;
1c34c1b5   Mihail   work on details desc
10
  use yii\data\ActiveDataProvider;
512cc271   Mihail   add delete price ...
11
  use yii\web\HttpException;
6cc97b30   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,
          ]);
      }
  
6cc97b30   Mihail   add details descr...
49
      /**
40acb401   Mihail   add delete price ...
50
       * Displays a single DetailsDescription model.
6cc97b30   Mihail   add details descr...
51
52
53
54
       * @param string $name
       * @param string $brand
       * @return mixed
       */
40acb401   Mihail   add delete price ...
55
      public function actionView($name, $brand)
6cc97b30   Mihail   add details descr...
56
      {
1c34c1b5   Mihail   work on details desc
57
          $criteria_model = new DetailsCriteria();
512cc271   Mihail   add delete price ...
58
59
          $query = DetailsCriteria::find()->where( ['name' => $name, 'brand' => $brand] );
          $count = $query->count('*');
1c34c1b5   Mihail   work on details desc
60
61
62
63
64
65
66
  
          $dataProvider = new ActiveDataProvider([
              'query' => $query,
              'pagination' => false,
          ]);
  
  
40acb401   Mihail   add delete price ...
67
68
          return $this->render('view', [
              'model' => $this->findModel($name, $brand),
1c34c1b5   Mihail   work on details desc
69
70
              'criteria_model' => $criteria_model,
              'dataProvider' => $dataProvider,
512cc271   Mihail   add delete price ...
71
              'count' => $count,
40acb401   Mihail   add delete price ...
72
          ]);
6cc97b30   Mihail   add details descr...
73
74
      }
  
512cc271   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('Не удалось записать характеристики в базу данных');
  
          }
  
      }
  
4044fc30   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('Не удалось удалить характеристики из базы данных');
  
          }
  
      }
  
512cc271   Mihail   add delete price ...
106
  
6cc97b30   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.');
          }
      }
1c34c1b5   Mihail   work on details desc
123
  
4044fc30   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('Запрашиваемая характеристика не существует.');
          }
      }
  
1c34c1b5   Mihail   work on details desc
138
  
6cc97b30   Mihail   add details descr...
139
  }