Download the PHP package cuneytyuksel/laravelcategorizable without Composer
On this page you can find all versions of the php package cuneytyuksel/laravelcategorizable. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download cuneytyuksel/laravelcategorizable
More information about cuneytyuksel/laravelcategorizable
Files in cuneytyuksel/laravelcategorizable
Package laravelcategorizable
Short Description Implementing Nested-structure Hierarchy Categories system for Eloquent models.
License MIT
Informations about the package laravelcategorizable
Laravel Categorizable Package
This Package is an implementation of a Nested-set hierarchy structure, which enables you to categorize your Eloquent models in a polymorphic way. just use the trait in the model, and you're good to go.
There is also a Category
model which you can use directly or extend it in your model of choosing.
Requirements
- PHP 8+
- Laravel 8+
Installation
composer require alibayat/laravel-categorizable
Publish and Run the migrations
Laravel Categorizable package will be auto-discovered by Laravel. and if not: register the package in config/app.php providers array manually.
Setup models - just use the Trait in the Model.
Usage
first we need to create some categories to work with. this package relies on another package called laravel-nestedset that is responsible for creating, updating, removing and retrieving single or nested structured categories. Here I demonstrate how to create categories and assign one as the other's child. but you can always check out the tests or refer to package's repository for full documentation. https://github.com/lazychaser/laravel-nestedset
Multiple category structure
there are times that you may wish to have different category structures for different models. in that's the case you can also pass in a type
parameter while creating a category. by default, type is set to default
. while having a type you can also leverage Eloquent model scopes to filter categories with ease.
Create a Tree while creating new categories
it's also possible to pass a nested structure as the children
property to the create method:
Attach the post to category
Detach the post from a category
Attach the post to list of categories
Detach the post from all categories
Sync the categories attached to a post
Check if post is attached to given categories (boolean)
List of categories attached to the post (array [1 => 'BackEnd'])
List of categories IDs attached to the post (array [1, 2, 3])
Get all posts attached to given category (MorphToMany)
Get all posts attached to given category and it's children (Builder)
Methods
On the Base Category
Model (or any other model that extends this class), you'll have access to various methods:
full documentation for these methods is available at laravel-nestedset
package's readme.
Relationships
categories() Relationship
parent Relationship
children Relationship
ancestors Relationship
descendants Relationship
Tests
this package comes with unit and feature tests as well (a total of 47 tests, 169 assertions) to ensure the provided features work as they should, you can run tests by the following composer command:
Credits
- Ali Bayat - [email protected]
- Thanks to all contributors
All versions of laravelcategorizable with dependencies
illuminate/database Version ^8.40.0|^9.0|^10.0
illuminate/support Version ^8.40.0|^9.0|^10.0
kalnoy/nestedset Version ^6.0
spatie/laravel-sluggable Version ^2.2|^3.3