Commit f540c70bc40cd9cec9378dc6e229631d51d7272b

Authored by Yarik
1 parent 72a1aa2d

Category finish

Showing 2 changed files with 19 additions and 2 deletions   Show diff stats
models/Category.php
@@ -29,6 +29,7 @@ @@ -29,6 +29,7 @@
29 * @property ProductCategory[] $productCategories 29 * @property ProductCategory[] $productCategories
30 * @property Brand[] $brands 30 * @property Brand[] $brands
31 * @property TaxGroup[] $taxGroups 31 * @property TaxGroup[] $taxGroups
  32 + * @property Category[] $siblings
32 * * From language behavior * 33 * * From language behavior *
33 * @property CategoryLang $lang 34 * @property CategoryLang $lang
34 * @property CategoryLang[] $langs 35 * @property CategoryLang[] $langs
@@ -149,7 +150,7 @@ @@ -149,7 +150,7 @@
149 public function getProducts() 150 public function getProducts()
150 { 151 {
151 return $this->hasMany(Product::className(), [ 'id' => 'product_id' ]) 152 return $this->hasMany(Product::className(), [ 'id' => 'product_id' ])
152 - ->viaTable('product_category', [ 'category_id' => 'id' ])->inverseOf('categories'); 153 + ->viaTable('product_category', [ 'category_id' => 'id' ]);
153 } 154 }
154 155
155 /** 156 /**
@@ -309,4 +310,20 @@ @@ -309,4 +310,20 @@
309 return $this->hasMany(TaxGroup::className(), [ 'id' => 'tax_group_id' ]) 310 return $this->hasMany(TaxGroup::className(), [ 'id' => 'tax_group_id' ])
310 ->viaTable('tax_group_to_category', [ 'category_id' => 'id' ]); 311 ->viaTable('tax_group_to_category', [ 'category_id' => 'id' ]);
311 } 312 }
  313 +
  314 + /**
  315 + * Get query to obtain siblings of current category (categories with same parent)
  316 + *
  317 + * @return ActiveQuery
  318 + */
  319 + public function getSiblings()
  320 + {
  321 + return $this->hasMany($this::className(), [ 'parent_id' => 'parent_id' ])
  322 + ->andWhere(
  323 + [
  324 + 'not',
  325 + [ 'id' => $this->id ],
  326 + ]
  327 + );
  328 + }
312 } 329 }
models/Product.php
@@ -365,7 +365,7 @@ @@ -365,7 +365,7 @@
365 public function getCategories() 365 public function getCategories()
366 { 366 {
367 return $this->hasMany(Category::className(), [ 'id' => 'category_id' ]) 367 return $this->hasMany(Category::className(), [ 'id' => 'category_id' ])
368 - ->viaTable('product_category', [ 'product_id' => 'id' ])->inverseOf('products'); 368 + ->viaTable('product_category', [ 'product_id' => 'id' ]);
369 } 369 }
370 370
371 /** 371 /**