hasOne(ProductOptionGroupExcl::className(), [ 'id' => 'product_option_group_excl_id' ]) ->inverseOf('productOptionExcls'); } /** * @return \yii\db\ActiveQuery */ public function getProductOptionExclLangs() { return $this->hasMany(ProductOptionExclLang::className(), [ 'product_option_excl_id' => 'id' ]) ->inverseOf('productOptionExcl'); } /** * @return \yii\db\ActiveQuery */ public function getLanguages() { return $this->hasMany(Language::className(), [ 'id' => 'language_id' ]) ->viaTable('product_option_excl_lang', [ 'product_option_excl_id' => 'id' ]); } /** * @return \yii\db\ActiveQuery */ public function getProductOptionExclToCategories() { return $this->hasMany(ProductOptionExclToCategory::className(), [ 'product_option_excl_id' => 'id' ]) ->inverseOf('productOptionExcl'); } /** * @return \yii\db\ActiveQuery */ public function getCategories() { return $this->hasMany(Category::className(), [ 'id' => 'category_id' ]) ->viaTable('product_option_excl_to_category', [ 'product_option_excl_id' => 'id' ]); } /** * @return \yii\db\ActiveQuery */ public function getProductToProductOptionExcls() { return $this->hasMany(ProductToProductOptionExcl::className(), [ 'product_option_excl_id' => 'id' ]) ->inverseOf('productOptionExcl'); } /** * @return \yii\db\ActiveQuery */ public function getProducts() { return $this->hasMany(Product::className(), [ 'id' => 'product_id' ]) ->viaTable('product_to_product_option_excl', [ 'product_option_excl_id' => 'id' ]); } /** * Get exact Option Group id value * * @return int|null */ public function getGroupId() { return $this->product_option_group_excl_id; } /** * Set Option Group link to Option model * * @param int $id * * @return void */ public function setGroupId(int $id) { $this->product_option_group_excl_id = $id; } /** * Get Group query * * @return \yii\db\ActiveQuery */ public function getGroup(): ActiveQuery { return $this->getProductOptionGroupExcl() ->inverseOf('options'); } }