Blame view

common/models/Feedback.php 2.96 KB
d8c1a2e0   Yarik   Big commit artbox
1
  <?php
d8c1a2e0   Yarik   Big commit artbox
2
      
5c2eb7c8   Yarik   Big commit almost...
3
      namespace common\models;
d8c1a2e0   Yarik   Big commit artbox
4
      
5c2eb7c8   Yarik   Big commit almost...
5
6
7
8
      use Yii;
      use yii\behaviors\AttributeBehavior;
      use yii\behaviors\TimestampBehavior;
      use yii\db\ActiveRecord;
d8c1a2e0   Yarik   Big commit artbox
9
10
      
      /**
5c2eb7c8   Yarik   Big commit almost...
11
12
13
14
15
16
       * This is the model class for table "feedback".
       * @property integer $feedback_id
       * @property string  $name
       * @property string  $phone
       * @property integer $date_add
       * @property string  $ip
d8c1a2e0   Yarik   Big commit artbox
17
       */
5c2eb7c8   Yarik   Big commit almost...
18
      class Feedback extends ActiveRecord
d8c1a2e0   Yarik   Big commit artbox
19
      {
5c2eb7c8   Yarik   Big commit almost...
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
          
          const SCENARIO_FEEDBACK = 'feedback';
          const SCENARIO_CALLBACK = 'callback';
          
          /**
           * @inheritdoc
           */
          public static function tableName()
          {
              return 'feedback';
          }
          
          /**
           * @inheritdoc
           */
          public function scenarios()
          {
              $scenarios = parent::scenarios();
              $scenarios = array_merge($scenarios, [
                  self::SCENARIO_FEEDBACK => [
                      'name',
                      'phone',
d8c1a2e0   Yarik   Big commit artbox
42
                  ],
5c2eb7c8   Yarik   Big commit almost...
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
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
                  self::SCENARIO_CALLBACK => [ 'phone' ],
              ]);
              return $scenarios;
          }
          
          /**
           * @inheritdoc
           */
          public function behaviors()
          {
              return [
                  [
                      'class'              => TimestampBehavior::className(),
                      'createdAtAttribute' => 'date_add',
                      'updatedAtAttribute' => false,
                  ],
                  [
                      'class'      => AttributeBehavior::className(),
                      'attributes' => [
                          ActiveRecord::EVENT_BEFORE_INSERT => 'ip',
                      ],
                      'value'      => function($event) {
                          return \Yii::$app->request->userIP;
                      },
                  ],
              ];
          }
          
          /**
           * @inheritdoc
           */
          public function rules()
          {
              return [
                  [
                      [
                          'phone',
                          'name',
                      ],
                      'required',
                  ],
                  [
                      [ 'phone' ],
                      'match',
                      'pattern' => '/^\+38\(\d{3}\)\d{3}-\d{2}-\d{2}$/',
                  ],
                  [
                      [
                          'name',
                          'phone',
                      ],
                      'string',
                      'max' => 255,
                  ],
              ];
          }
          
          /**
           * @inheritdoc
           */
          public function attributeLabels()
          {
              return [
                  'feedback_id' => Yii::t('app', 'feedback_id'),
                  'name'        => Yii::t('app', 'name'),
                  'phone'       => Yii::t('app', 'phone'),
                  'date_add'    => Yii::t('app', 'date_add'),
                  'ip'          => Yii::t('app', 'ip'),
              ];
          }
d8c1a2e0   Yarik   Big commit artbox
113
      }