Blame view

common/models/Catalog.php 3.13 KB
e3ec491c   andryeyev   + Catalog в backe...
1
2
3
4
5
  <?php
  
  namespace common\models;
  
  use Yii;
94ea562b   andryeyev   + редактирование ...
6
  use yii\data\ActiveDataProvider;
e3ec491c   andryeyev   + Catalog в backe...
7
8
9
10
11
  
  /**
   * This is the model class for table "catalog".
   *
   * @property integer $id
94ea562b   andryeyev   + редактирование ...
12
   * @property integer $parent_id 
e3ec491c   andryeyev   + Catalog в backe...
13
14
15
16
17
18
   * @property string $cover
   * @property string $options
   * @property integer $status
   * @property integer $sort
   */
  class Catalog extends \yii\db\ActiveRecord
94ea562b   andryeyev   + редактирование ...
19
  {  
e3ec491c   andryeyev   + Catalog в backe...
20
21
22
23
24
25
26
27
28
29
30
31
32
33
      /**
       * @inheritdoc
       */
      public static function tableName()
      {
          return 'catalog';
      }
  
      /**
       * @inheritdoc
       */
      public function rules()
      {
          return [
94ea562b   andryeyev   + редактирование ...
34
              [['parent_id', 'status', 'sort'], 'integer'], 
e3ec491c   andryeyev   + Catalog в backe...
35
36
37
              [['cover'], 'string', 'max' => 32], 
          ];
      }
94ea562b   andryeyev   + редактирование ...
38
    
e3ec491c   andryeyev   + Catalog в backe...
39
40
41
42
43
44
      /**
       * @inheritdoc
       */
      public function attributeLabels()
      {
          return [
94ea562b   andryeyev   + редактирование ...
45
              'catalog_id' => Yii::t('app', 'ID'),
e3ec491c   andryeyev   + Catalog в backe...
46
              'parent_id' => Yii::t('app', 'Parent ID'),
94ea562b   andryeyev   + редактирование ...
47
              'cover' => Yii::t('app', 'Cover'), 
e3ec491c   andryeyev   + Catalog в backe...
48
49
50
51
              'status' => Yii::t('app', 'Status'),
              'sort' => Yii::t('app', 'Sort'),
          ];
      }
94ea562b   andryeyev   + редактирование ...
52
53
    
      /** 
3fe15343   andryeyev   + новая версия (d...
54
       * Выполняет поиск по параметрам
94ea562b   andryeyev   + редактирование ...
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
       * @param array $param принимает [catalog_id, lang_id, return_one, return_field, show_all]
       * @return array one | array all | string значение масива
       */
      public function finInfo (array $params = [])
      {
          Tools::ifNotExist ($params, array (
              'catalog_id' => false,
              'lang_id' => false,
              'return_one' => false,
              'return_field' => false,
              'show_all' => false,
              'to_array' => true,
          )); 
  
          $model = new Catalog();
          
          $query = $model->find()->select('*'); 
          
          $query->joinWith(['relationCatalogLang2']);
   
          $WHERE = array ();
   
          if ($params['catalog_id'] !== false)
          {
              $WHERE['catalog.catalog_id'] = $params['catalog_id'];
          }
  
          if ($params['lang_id'] !== false)
          {
              $WHERE['catalog_i18n.lang_id'] = $params['lang_id'];
          }
  
          if (! empty ($WHERE))
          { 
              $query->where($WHERE);
          }
          
          if ($params['to_array'] !== false)
          {
              $query = $query->asArray();
          }
  
          if ($params['return_one'] !== false || $params['return_field'] !== false)
          {
      
              $result = $params['return_field'] !== false ? $query->one($params['return_field']) : $query->one();  
          }
          else 
          {
              $result = $query->all(); 
          }
   
          return $result; 
      }
e3ec491c   andryeyev   + Catalog в backe...
109
110
111
112
  
      /**
       * @return \yii\db\ActiveQuery
       */
94ea562b   andryeyev   + редактирование ...
113
114
115
116
117
118
119
120
121
      public function getRelationCatalogLangPlus()
      { 
          return $this->getRelationCatalogLang2()->where(['lang_id' => yii::$app->params['lang_id']]);
      }
  
      /**
       * @return \yii\db\ActiveQuery
       */
      public function getRelationCatalogLang2()
e3ec491c   andryeyev   + Catalog в backe...
122
      {
94ea562b   andryeyev   + редактирование ...
123
          return $this->hasOne(CatalogLang::className(), ['catalog_id' => 'catalog_id']);
e3ec491c   andryeyev   + Catalog в backe...
124
      }
94ea562b   andryeyev   + редактирование ...
125
  
e3ec491c   andryeyev   + Catalog в backe...
126
127
      public function getTitle()
      {
94ea562b   andryeyev   + редактирование ...
128
129
130
131
132
133
          return $this->relationCatalogLangPlus->title;
      }
  
      public function getParentTitle()
      {
          return $this->relationCatalogLangPlus->title;
e3ec491c   andryeyev   + Catalog в backe...
134
      }
e3ec491c   andryeyev   + Catalog в backe...
135
  }