A category traits methods
This commit is contained in:
parent
7c3facc3f5
commit
5003f31d7c
|
|
@ -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.
|
||||
*/
|
||||
|
|
|
|||
Loading…
Reference in New Issue