Пакет Laravel Taxonomy керує категоріями, тегами та ієрархічними структурами у застосунках Laravel. Taxonomy є ідеальним рішенням для управління категоріями, організації контенту, атрибутами продуктів або будь-якою ієрархічною структурою даних. Пропонуємо швидкий приклад створення таксономій і їх асоціації з моделлю Eloquent:
use Aliziodev\LaravelTaxonomy\Facades\Taxonomy;
use Aliziodev\LaravelTaxonomy\Enums\TaxonomyType;
// Створення категорії
$electronics = Taxonomy::create([
'name' => 'Електроніка',
'type' => TaxonomyType::Category->value,
'description' => 'Електронні продукти та гаджети',
]);
// Створення підкатегорії
$smartphones = Taxonomy::create([
'name' => 'Смартфони',
'type' => TaxonomyType::Category->value,
'parent_id' => $electronics->id,
]);
// Створення тегів
$featured = Taxonomy::create([
'name' => 'Рекомендовані',
'type' => TaxonomyType::Tag->value,
]);
// Припустимо, у вас є модель Product з трейтом HasTaxonomy
$product = Product::create([
'name' => 'iPhone 15 Pro',
'price' => 999.99,
]);
// Прикріплення таксономій
$product->attachTaxonomies([$electronics->id, $smartphones->id, $featured->id]);
Після того як ви прикріпили таксономії до моделі продукту, ось як можна запитати продукти із такою ж категорією:
// Пошук продуктів у категорії електроніки
$products = Product::withTaxonomyType(TaxonomyType::Category)
->withTaxonomySlug('electronics')
->get();
// Перевірка, чи має продукт задані таксономії
$product->hasTaxonomies($categoryIds);
$product->hasAllTaxonomies($tagIds);
$product->hasTaxonomyType(TaxonomyType::Category);
Це лише невелика частина можливостей цього пакета. Для детальніших прикладів та повної документації перегляньте README файл пакета. Тут ви знайдете інформацію про налаштування, конфігурацію та основні можливості пакета, які включають:
🧑💻 Розпочати роботу з цим пакетом ви можете на GitHub: aliziodev/laravel-taxonomy.
composer require aliziodev/laravel-taxonomy
php artisan taxonomy:install
php artisan migrate