Blame view

common/models/Fields.php 2.56 KB
4668085e   Administrator   firs page
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
  <?php
  
  namespace common\models;
  
  use Yii;
  
  /**
   * This is the model class for table "{{%fields}}".
   *
   * @property integer $id
   * @property string $table_name
   * @property integer $table_id
   * @property string $value
   * @property string $field_name
   * @property string $field_type
70abf3e7   Administrator   add field v.1
16
17
18
   * @property string $language
   * @property string $parent_key
   * @property string $key
4668085e   Administrator   firs page
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
   */
  class Fields extends \yii\db\ActiveRecord
  {
      /**
       * @inheritdoc
       */
      public static function tableName()
      {
          return '{{%fields}}';
      }
  
      /**
       * @inheritdoc
       */
      public function rules()
      {
          return [
              [['table_name', 'table_id',], 'required'],
70abf3e7   Administrator   add field v.1
37
38
              [['table_id','parent_key','key'], 'integer'],
              [['table_name', 'value', 'field_name','field_type','language'], 'string', 'max' => 255]
4668085e   Administrator   firs page
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
          ];
      }
  
      /**
       * @inheritdoc
       */
      public function attributeLabels()
      {
          return [
              'id' => 'ID',
              'table_name' => 'Model Name',
              'table_id' => 'Model ID',
              'value' => 'Value',
              'field_name' => 'Field Name',
              'language' => 'Language',
          ];
      }
  
      public static function getData($id, $model, $type){
         return self::find()->where(['table_id'=>$id, 'table_name'=>$model, 'field_type'=>$type])->all();
      }
70abf3e7   Administrator   add field v.1
60
61
62
63
64
65
66
67
68
69
70
  
  
      /**
       * @param $post - array with field data
       * @param $table_id - row id in model table
       * @param $table_name - madel table name
       * @param $language - language id
       */
  
      public static function saveFieldData($post,$table_id,$table_name, $language){
  
766bd93b   Yarik   test
71
          self::deleteAll(['table_id'=>$table_id, 'table_name'=>$table_name, 'language' => $language, 'field_type' => array_keys($post)]);
70abf3e7   Administrator   add field v.1
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
  
          if($post){
  
  
              foreach($post as $k => $field){
  
  
  
                  foreach($field as $parent_key => $row){
  
                      foreach($row as $key => $value){
  
                          $field_model = new Fields();
                          $field_model->field_name =  array_keys($value)[0];
                          $field_model->value = $value[array_keys($value)[0]];
                          $field_model->table_name =  $table_name;
                          $field_model->table_id   = $table_id;
                          $field_model->field_type =  $k;
                          $field_model->language =  'ru';
                          $field_model->parent_key =  $parent_key;
                          $field_model->key =  $key;
                          $field_model->save();
                      }
  
                  }
              }
          }
      }
4668085e   Administrator   firs page
100
  }