A category traits methods

This commit is contained in:
Fabian @ Blax Software 2025-12-08 09:23:19 +01:00
parent 7c3facc3f5
commit 5003f31d7c
1 changed files with 34 additions and 0 deletions

View File

@ -134,6 +134,40 @@ trait HasCategories
$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.
*/