PHP code example of medicivn / eloquent-nested-set

1. Go to this page and download the library: Download medicivn/eloquent-nested-set 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/ */

    

medicivn / eloquent-nested-set example snippets



use MediciVN\EloquentNestedSet\NestedSetModel;

class Category extends Model
{
    use NestedSetModel;

    /**
     * ID của Root node
     * 
     * Mặc định: 1 
     */
    const ROOT_ID = 99999; 

    /**
     * Tên trường lưu vị trí bên trái của một node
     * 
     * Mặc định: 'lft'
     * 
     * Chú ý: kiểu dữ liệu trong Database cần cho phép lưu cả giá trị âm
     */
    const LEFT = 'lft';

    /**
     * Tên trường lưu vị trí bên phải của một node
     * 
     * Mặc định: 'rgt'
     * 
     * Chú ý: kiểu dữ liệu trong Database cần cho phép lưu cả giá trị âm
     */
    const RIGHT = 'rgt';

    /**
     * Tên trường lưu ID của node cha
     * 
     * Mặc định: 'parent_id'
     */
    const PARENT_ID = 'parent_id';

    /**
     * Tên trường lưu giá trị độ sâu - cấp độ của một node
     * 
     * Mặc định: 'depth'
     * 
     * Giá trị depth của một node không ảnh hưởng đến việc tính toán left và rigth.
     * Bạn có thể khởi tạo root node với depth=0, hoặc bất cứ giá trị nào bạn muốn.
     */
    const DEPTH = 'depth';

    /**
     * Bạn có thể triển khai việc cập nhật lại vị trí các nodes với queue nếu lo ngại vấn đề về performance
     * Queue connection phải được khai báo trong `config/queue.php`.
     * 
     * Mặc định: null
     */
    const QUEUE_CONNECTION = 'sqs';

    /**
     * Mặc định: null
     */
    const QUEUE = 'your_queue';

    /**
     * Mặc định: true
     */
    const QUEUE_AFTER_COMMIT = true;


      Category::getTree();
  

      Category::getFlatTree();
  

      Category::getLeafNodes();
  

      $node = Category::find(123);
      $node->getAncestors();
  

      $node = Category::find(123);
      $node->getAncestorsTree();
  

      $node = Category::find(123);
      $node->getDescendants();
  

      $node = Category::find(123);
      $node->getDescendantsTree();
  

      $node = Category::find(123);
      $node->parent();
  

      $node = Category::find(123);
      $node->children();
  

      $categories = Category::withoutGlobalScope('ignore_root')->get();
      $tree = Category::buildNestedTree($categories);
  

      Category::fixTree();