Blame view

common/modules/product/models/ProductImage.php 3.77 KB
d8c1a2e0   Yarik   Big commit artbox
1
  <?php

af036678   Yarik   Image behaviors
2
3
4
5
6
7
      

      namespace common\modules\product\models;

      

      use common\behaviors\ImageBehavior;

      use Yii;

      

d8c1a2e0   Yarik   Big commit artbox
8
      /**

af036678   Yarik   Image behaviors
9
10
11
12
13
14
15
16
17
       * This is the model class for table "product_image".

       * @property integer        $product_image_id

       * @property integer        $product_id

       * @property integer        $product_variant_id

       * @property string         $image

       * @property string         $alt

       * @property string         $title

       * @property Product        $product

       * @property ProductVariant $productVariant

d8c1a2e0   Yarik   Big commit artbox
18
       */

af036678   Yarik   Image behaviors
19
      class ProductImage extends \yii\db\ActiveRecord

d8c1a2e0   Yarik   Big commit artbox
20
      {

af036678   Yarik   Image behaviors
21
22
23
24
25
26
27
          

          /**

           * @inheritdoc

           */

          public static function tableName()

          {

              return 'product_image';

d8c1a2e0   Yarik   Big commit artbox
28
          }

af036678   Yarik   Image behaviors
29
30
31
32
33
34
35
36
37
38
          

          public function behaviors()

          {

              return [

                  [

                      'class'     => ImageBehavior::className(),

                      'link'      => 'image',

                      'directory' => 'products',

                  ],

              ];

d8c1a2e0   Yarik   Big commit artbox
39
          }

af036678   Yarik   Image behaviors
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
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
          

          /**

           * @inheritdoc

           */

          public function rules()

          {

              return [

                  [

                      [ 'product_id' ],

                      'required',

                  ],

                  [

                      [

                          'product_image_id',

                          'product_id',

                          'product_variant_id',

                      ],

                      'integer',

                  ],

                  [

                      [

                          'alt',

                          'title',

                          'image',

                      ],

                      'string',

                      'max' => 255,

                  ],

                  [

                      [ 'product_id' ],

                      'exist',

                      'skipOnError'     => true,

                      'targetClass'     => Product::className(),

                      'targetAttribute' => [ 'product_id' => 'product_id' ],

                  ],

                  [

                      [ 'product_variant_id' ],

                      'exist',

                      'skipOnError'     => true,

                      'targetClass'     => ProductVariant::className(),

                      'targetAttribute' => [ 'product_variant_id' => 'product_variant_id' ],

                  ],

              ];

          }

          

          /**

           * @inheritdoc

           */

          public function attributeLabels()

          {

              return [

                  'product_image_id'   => Yii::t('product', 'Product Image ID'),

                  'product_id'         => Yii::t('product', 'Product ID'),

                  'product_variant_id' => Yii::t('product', 'Product Variant ID'),

                  'product'            => Yii::t('product', 'Product'),

                  'product_variant'    => Yii::t('product', 'Product Variant'),

                  'image'              => Yii::t('product', 'Image'),

                  'alt'                => Yii::t('product', 'Alt'),

                  'title'              => Yii::t('product', 'Title'),

              ];

          }

          

          /**

           * @return \yii\db\ActiveQuery

           */

          public function getProduct()

          {

              $return = $this->hasOne(Product::className(), [ 'product_id' => 'product_id' ]);

              if(empty( $return )) {

                  $return = $this->productVariant->product_id;

              }

              return $return;

d8c1a2e0   Yarik   Big commit artbox
112
          }

af036678   Yarik   Image behaviors
113
114
115
116
117
118
119
          

          /**

           * @return \yii\db\ActiveQuery

           */

          public function getProductVariant()

          {

              return $this->hasOne(Product::className(), [ 'product_variant_id' => 'product_variant_id' ]);

d8c1a2e0   Yarik   Big commit artbox
120
          }

d8c1a2e0   Yarik   Big commit artbox
121
      }