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: | 2024-11-23 03:09:43 |
Package Statistics | |
---|---|
Total Downloads: | 3 |
Monthly Downloads: | 1 |
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));
}
}