laraditz/laravel-tree

Hierarchical or tree database implementation using path enumeration model

0.0.1 2021-03-24 04:17 UTC

This package is auto-updated.

Last update: 2024-04-13 05:56:53 UTC


README

Latest Version on Packagist Build Status Quality Score Total Downloads

Hierarchical or tree database implementation using path enumeration model.

Installation

You can install the package via composer:

composer require laraditz/laravel-tree

Configuration

Add the tree columns to your table by adding addLaravelTreeColumns to your database migration file. For example, we add the tree columns to the trees table as shown below.

 Schema::create('trees', function (Blueprint $table) {
    ...
    $table->addLaravelTreeColumns();
    ...
});

Then, add the TreeNodeTrait to the model.

use Laraditz\LaravelTree\TreeNodeTrait;

class Tree extends Model
{
    use TreeNodeTrait;
    
}

Usage

Create node as root.

Tree::create([
    'user_id' => 1
])->asRoot()

Create node as child.

// $tree is the parent object
Tree::create([
    'user_id' => 2
])->asChildOf($tree);

// or
$tree->appendChild([
    'user_id' => 2
]);

Changelog

Please see CHANGELOG for more information what has changed recently.

Contributing

Please see CONTRIBUTING for details.

Security

If you discover any security related issues, please email raditzfarhan@gmail.com instead of using the issue tracker.

Credits

License

The MIT License (MIT). Please see License File for more information.