true, 'targetClass' => Shop::className(), 'targetAttribute' => [ 'shop_id' => 'id' ], ], [ [ 'variant_id' ], 'exist', 'skipOnError' => true, 'targetClass' => Variant::className(), 'targetAttribute' => [ 'variant_id' => 'id' ], ], ]; } /** * @inheritdoc */ public function attributeLabels() { return [ 'variant_id' => 'Variant ID', 'shop_id' => 'Shop ID', 'count' => \Yii::t('stock', 'Count'), ]; } /** * @return \yii\db\ActiveQuery */ public function getShop() { return $this->hasOne(Shop::className(), [ 'id' => 'shop_id' ]); } /** * @return \yii\db\ActiveQuery */ public function getVariant() { return $this->hasOne(Variant::className(), [ 'id' => 'variant_id' ]); } /* public function afterSave($insert, $changedAttributes) { parent::afterSave($insert, $changedAttributes); // TODO: Change the autogenerated stub $variant = $this->variant; if ($variant->stock - $changedAttributes['count'] >= 0){ $variant->stock = $variant->stock - $changedAttributes['count'] + $this->count; }else{ $variant->stock = $this->count; } $variant->save(); } )*/ }