1. Go to this page and download the library: Download malith124/materialized-path library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
malith124 / materialized-path example snippets
Schema::create('page_table', function(Blueprint $table)
{
$table->engine = 'InnoDB';
$table->increments('id');
// parent id
$table->integer('parent_id')->unsigned()->nullable();
// depth path consisting of models id
$table->string('path');
// depth path consisting of models alias
$table->string('real_path')->unique();
// alias field
$table->string('alias')->unique();
// order position
$table->integer('position')->default(0)->index();
// depth level
$table->integer('level')->default(0)->index();
$table->foreign('parent_id')->references('id')->on('page_table')->onDelete('cascade');
});
// Make model is root
with(new Page())->makeRoot();
// Make model first children by parent id
with(new Page())->makeFirstChildOf($parentId);
// Make model last children by parent id
with(new Page())->makeLastChildOf($parentId);
// Make previous sibling
$page = Page::find(2);
$page->makePreviousSiblingOf(Page::find(1));
// Make next sibling
$page = Page::find(2);
$page->makeNextSiblingOf(Page::find(1));
// Update model data
$page = Page::find(1);
$page->position = 2;
with(new Page())->updateNode($page);
// Get parent
Page::find(1)->parent()->get();
// Get sibling
Page::find(1)->sibling()->get();
// Get childrens by depth
Page::find(1)->childrenByDepth()->get();
// Get parents by depth
Page::find(1)->parentByDepth()->get();
// Descendant check
Page::find(1)->isDescendantOf(Page::find(2));
// Ancestor check
Page::find(1)->isAncestorOf(Page::find(2));
// Is leaf
Page::find(1)->isLeaf();
// All leafs of model
Page::allLeaf();
// All roots of model
Page::allRoot();
// Get exploded path
Page::find(1)->getExplodedPath();
// Build real path by entities
with(new Page())->buildRealPath($ids);
// Build model tree
Page::find(1)->buildTree();
// Build model tree by parent id
Page::find(1)->buildChidrenTree();
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.