Blame view

common/models/Specialization.php 3.06 KB
71f66dca   Administrator   add Vitaliy's wid...
1
2
3
4
5
  <?php
  
  namespace common\models;
  
  use Yii;
35b03e57   Administrator   add yii jquery
6
  use yii\helpers\ArrayHelper;
71f66dca   Administrator   add Vitaliy's wid...
7
8
9
10
11
12
13
  
  /**
   * This is the model class for table "specialization".
   *
   * @property integer $specialization_id
   * @property integer $specialization_pid
   * @property string $specialization_name
ea8c5991   Administrator   add Vitaliy's wid...
14
15
   * @property string $image
   * @property string $background
71f66dca   Administrator   add Vitaliy's wid...
16
17
18
   */
  class Specialization extends \yii\db\ActiveRecord
  {
71f66dca   Administrator   add Vitaliy's wid...
19
20
21
22
23
24
25
26
27
28
29
30
31
32
      /**
       * @inheritdoc
       */
      public static function tableName()
      {
          return 'specialization';
      }
  
      /**
       * @inheritdoc
       */
      public function rules()
      {
          return [
ea8c5991   Administrator   add Vitaliy's wid...
33
              [['specialization_pid','status'], 'integer'],
71f66dca   Administrator   add Vitaliy's wid...
34
35
              [['specialization_pid'], 'default', 'value' => '0',],
              [['specialization_name'], 'required'],
ea8c5991   Administrator   add Vitaliy's wid...
36
              [['specialization_name','image','background'], 'string', 'max' => 255],
71f66dca   Administrator   add Vitaliy's wid...
37
38
39
40
41
42
43
44
45
          ];
      }
  
      /**
       * @inheritdoc
       */
      public function attributeLabels()
      {
          return [
06ec2844   Administrator   28.03.16
46
47
48
49
50
51
52
              'specialization_id' => Yii::t('app', 'specialization_id'),
              'specialization_pid' => Yii::t('app', 'specialization_pid'),
              'specialization_name' => Yii::t('app', 'specialization_name'),
              'specialization_parent_name' => Yii::t('app', 'specialization_parent_name'),
              'image' => Yii::t('app', 'image'),
              'background' => Yii::t('app', 'background'),
              'status' => Yii::t('app', 'status'),
71f66dca   Administrator   add Vitaliy's wid...
53
54
55
          ];
      }
  
dafc9daf   Administrator   add yii jquery
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
      public static function specializationsList(){
  
  
          $specializationArray = [];
  
          $specialization = Specialization::find()->where(['specialization_id'=> Specialization::find()->select('specialization_id')
              ->andWhere('specialization_pid != 0')
              ->column()])
              ->all();
  
          foreach(ArrayHelper::index($specialization,'specialization_id') as $spec){
              $array = $spec->hasChildrenInArray($specialization);
              if($array){
                  $specializationArray[$spec->specialization_name] = $array;
              }
          }
  
          return $specializationArray;
  
  
      }
  
71f66dca   Administrator   add Vitaliy's wid...
78
79
80
81
82
83
  
      public function getParent()
      {
          return $this->hasOne(self::className(), ['specialization_id' => 'specialization_pid']);
      }
  
ea8c5991   Administrator   add Vitaliy's wid...
84
85
86
87
88
      public function getChildren()
      {
          return $this->hasMany(self::className(), ['specialization_pid' => 'specialization_id']);
      }
  
35b03e57   Administrator   add yii jquery
89
90
91
92
93
94
95
96
97
98
99
      public function hasChildrenInArray($array){
          $array =  ArrayHelper::map($array,'specialization_id', 'specialization_name','specialization_pid');
  
          if(isset($array[$this->specialization_id])){
              return $array[$this->specialization_id];
          } else {
              return false;
          }
  
      }
  
004b2298   Yarik   test
100
101
102
103
104
105
106
107
108
109
110
111
112
113
      public function getStack()
      {
          $stack[] = $this->specialization_id;
          if(!empty($this->children)) {
              foreach($this->children as $child) {
                  $stack[] = $child->specialization_id;
                  if(!empty($child->children)) {
                      $stack = array_merge($stack, ArrayHelper::getColumn($child->children, 'specialization_id', false));
                  }
              }
          }
          return $stack;
      }
  
71f66dca   Administrator   add Vitaliy's wid...
114
  }