Blame view

common/models/speaker/Speaker.php 3.41 KB
cfa46f4f   Alexey Boroda   -Speakers admin r...
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
  <?php
      
      namespace common\models\speaker;
      
      use artbox\core\models\Image;
      use artbox\core\models\Language;
      use yii\db\ActiveQuery;
      use yii\db\ActiveRecord;
      use yii2tech\ar\position\PositionBehavior;
      use yii2tech\ar\variation\VariationBehavior;
      
      /**
       * Class Page
       *
       * @package common\models\speaker
       * @property integer $id
       * @property integer $sort
       * @property boolean $status
       * @property Image   $image
147ec2fb   alex   add speakers part
20
       * @property string   $text1
cfa46f4f   Alexey Boroda   -Speakers admin r...
21
22
23
24
25
26
27
28
29
30
31
32
33
34
       * @method ActiveQuery  hasDefaultVariationRelation();
       */
      class Speaker extends ActiveRecord
      {
          public function rules()
          {
              return [
                  [
                      [
                          'sort',
                          'image_id',
                      ],
                      'integer',
                  ],
147ec2fb   alex   add speakers part
35
  
cfa46f4f   Alexey Boroda   -Speakers admin r...
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
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
                  [
                      [
                          'status',
                      ],
                      'boolean',
                  ],
              ];
          }
          
          public function behaviors()
          {
              return [
                  'translations'     => [
                      'class'                             => VariationBehavior::className(),
                      'variationsRelation'                => 'languages',
                      'defaultVariationRelation'          => 'language',
                      'variationOptionReferenceAttribute' => 'language_id',
                      'optionModelClass'                  => Language::className(),
                      'defaultVariationOptionReference'   => function () {
                          return Language::getCurrent()->id;
                      },
                      'optionQueryFilter'                 => function (ActiveQuery $query) {
                          $query->where(
                              [
                                  'status' => true,
                              ]
                          );
                      },
                  ],
                  'positionBehavior' => [
                      'class'             => PositionBehavior::className(),
                      'positionAttribute' => 'sort',
                  ],
              ];
          }
          
          public static function tableName()
          {
              return 'speaker';
          }
          
          /**
           * @return \yii\db\ActiveQuery
           */
          public function getLanguages()
          {
              return $this->hasMany(SpeakerLang::className(), [ 'speaker_id' => 'id' ]);
          }
          
          /**
           * @return \yii\db\ActiveQuery
           */
          public function getLanguage()
          {
6dda9886   Anastasia   model speaker
90
              return $this->hasOne(SpeakerLang::className(), [ 'speaker_id' => 'id' ])
cfa46f4f   Alexey Boroda   -Speakers admin r...
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
                          ->where(
                              [
                                  'language_id' => Language::getCurrent()->id,
                              ]
                          );
          }
          
          /**
           * @return \yii\db\ActiveQuery
           */
          public function getImage()
          {
              return $this->hasOne(Image::className(), [ 'id' => 'image_id' ]);
          }
          
          /**
           * @return array
           */
          public function attributeLabels()
          {
              return [
147ec2fb   alex   add speakers part
112
113
114
115
                  'sort'      => \Yii::t('core', 'Sort'),
                  'status'    => \Yii::t('core', 'Status'),
                  'image_id'  => \Yii::t('core', 'Image'),
  
cfa46f4f   Alexey Boroda   -Speakers admin r...
116
117
118
              ];
          }
      }