Laravel 5 Shared Category Package
This package manages categories in a shared table
Requirements
This package currently requires Laravel >= 5.0
Installation
require by packagist
composer require JLeonardoLemos/categories
composer require JLeonardoLemos/categoriesAdd service provider on array in app.php
'JLeonardoLemos\Categories\Providers\CategoriesServiceProvider',Or
JLeonardoLemos\Categories\Providers\CategoriesServiceProvider::class,Configure your model
use JLeonardoLemos\Categories\CategoryableContract;
use JLeonardoLemos\Categories\CategoryableTrait; class ModelName extends Model implements CategoryableContract
{
use CategoryableTrait;On views
{!! Category::select('Categoria', 'group_slug') !!}Obs: use group slug to bring only a specific category group
publish migrations
php artisan vendor:publishrun migrations
php artisan migrateHow to use
Seed your categories table, you can to use any Eloquent method to handle this categories
Category::create([
'name' => 'category 1'
, 'group_slug' => 'group 1'
, 'description' => ''
]);
Category::create([
'name' => 'category 2'
, 'group_slug' => 'group 1'
, 'description' => ''
]); Obs: The categories are grouped by group_slug
You must to create the relationship with category table only once
$model->categoriesSet()->create([
'category_id' => 1
]);If the relationship is created, you can update it
$categoriesSet = $new->categoriesSet()->first();
$categoriesSet->category_id = 4;
$categoriesSet->save();Access the category
$model->categoryRecursive
The category model has a category_id attribute, this is the parent category id
To access the parent of a given model
Category::first()->daddyTo access the children
Category::first()->dearChildren