Управління таксономіями, категоріями та тегами в Laravel

Перекладено ШІ
Оригінал: Laravel News
Оновлено: 14 червня, 2025
Laravel Taxonomy — це потужний пакет для управління категоріями, тегами та ієрархічними структурами у ваших програмах. Дізнайтеся, як легко створювати системи категоризації та асоціювати їх з моделями Eloquent, щоб покращити організацію вашого контенту

Пакет 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