| Package Data | |
|---|---|
| Maintainer Username: | falco442 |
| Package Create Date: | 2022-08-12 |
| Package Last Update: | 2022-08-13 |
| Home Page: | |
| Language: | PHP |
| License: | MIT |
| Last Refreshed: | 2025-11-03 15:07:13 |
| Package Statistics | |
|---|---|
| Total Downloads: | 5 |
| Monthly Downloads: | 0 |
| Daily Downloads: | 0 |
| Total Stars: | 0 |
| Total Watchers: | 1 |
| Total Forks: | 0 |
| Total Open Issues: | 0 |
This package is intended for generating a tree structure from flat data (array); it makes use of the class Illuminate\Support\Collection, so is intended for Lumen/Laravel projects.
from command line, in the root folder of your Laravel/Lumen project, run the command
composer require falco442/lumen-treeview
getTree()| name | type | default value | description |
|------------------|--------|-----------------|----------------------------------------------------------------------------------------------------------|
| $array | array | none. required. | this is the array to pass. |
| $parentIdField | string | 'parent_id' | the name for the parent field with which is constructed the relation |
| $idField | string | 'id' | the name for the main field of the array, usually the primary key of the table from which data are taken |
| $childrenField | string | 'children' | the name for the field which to put the children in, in the returned tree |
getNode()| name | type | default value | description |
|---------------|--------------------|-----------------|-------------------------------------------------------------------------------------------------------------------------|
| $array | array | none. required. | this is the array to pass. Is taken by reference |
| $id | string || number | none. required. | The id of the node to take for which construct the tree |
| $parentIdField | string | 'parent_id' | the name for the parent field with which is constructed the relation |
| $idField | string | 'id' | the name for the main field of the array, usually the primary key of the table from which data are taken |
| $childrenField | string | 'children' | the name for the field which to put the children in, in the returned tree |
| $node | array | null | The node instance to pass to the method. optional, and not to be used to construct the tree. Internal use only. |
You can call the function getTree() to an array of arrays (for example a collection got from Eloquent) like this:
<?php
namespace App\Http\Controllers;
use App\Models\Post;
use falco442\Treeview;
use Illuminate\Http\Request;
use Illuminate\Http\Response;
class PostsController extends Controller
{
public function tree()
{
$posts = Post::all()->transform(function ($item) {
if ($item->parent_id === 0) {
$item->parent_id = null;
}
return $item;
})->toArray();
return \response()->json(Treeview::getTree($posts));
}
}
You can call the static method of the class TreeView to retrieve the tree relative to a node like this, inserting the id as parameter ID:
<?php
namespace App\Http\Controllers;
use App\Models\Post;
use falco442\Treeview;
use Illuminate\Http\Request;
use Illuminate\Http\Response;
class PostsController extends Controller
{
public function tree()
{
$posts = Post::all()->transform(function ($item) {
if ($item->parent_id === 0) {
$item->parent_id = null;
}
return $item;
})->toArray();
return \response()->json(Treeview::getTree($posts, 101));
}
}