A category traits methods
This commit is contained in:
parent
7c3facc3f5
commit
5003f31d7c
|
|
@ -134,6 +134,40 @@ trait HasCategories
|
||||||
$this->categories()->sync($categories);
|
$this->categories()->sync($categories);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sync categories by name
|
||||||
|
*
|
||||||
|
* @param array<string> $categories
|
||||||
|
*/
|
||||||
|
public function syncCategoriesByNames(array $categories): void
|
||||||
|
{
|
||||||
|
$categoryIds = [];
|
||||||
|
|
||||||
|
foreach ($categories as $name) {
|
||||||
|
$category = config('shop.models.product_category')::firstOrCreate(['name' => $name]);
|
||||||
|
$categoryIds[] = $category->id;
|
||||||
|
}
|
||||||
|
|
||||||
|
$this->categories()->sync($categoryIds);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sync categories by slug
|
||||||
|
*
|
||||||
|
* @param array<string> $categories
|
||||||
|
*/
|
||||||
|
public function syncCategoriesBySlugs(array $categories): void
|
||||||
|
{
|
||||||
|
$categoryIds = [];
|
||||||
|
|
||||||
|
foreach ($categories as $slug) {
|
||||||
|
$category = config('shop.models.product_category')::firstOrCreate(['slug' => $slug]);
|
||||||
|
$categoryIds[] = $category->id;
|
||||||
|
}
|
||||||
|
|
||||||
|
$this->categories()->sync($categoryIds);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Attach or create a category by name.
|
* Attach or create a category by name.
|
||||||
*/
|
*/
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue