Tree View

Can be achieved through a model-tree to a tree-like components, you can drag the way to achieve the level of data, sorting and other operations, the following is the basic usage.

Table structure and model

To use model-tree, you have to follow the convention of the table structure:

CREATE TABLE `demo_categories` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `parent_id` int(11) NOT NULL DEFAULT '0',
  `order` int(11) NOT NULL DEFAULT '0',
  `title` varchar(50) COLLATE utf8_unicode_ci NOT NULL,
  `created_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
  `updated_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci

The above table structure has three necessary fields parent_id, order, title, and the other fields are not required.

The corresponding model is app/Models/Category.php:

<?php

namespace App\Models\Demo;

use Ezadev\Admin\Traits\AdminBuilder;
use Ezadev\Admin\Traits\ModelTree;
use Illuminate\Database\Eloquent\Model;

class Category extends Model
{
    use ModelTree, AdminBuilder;

    protected $table = 'demo_categories';
}

Table structure in the three fields parent_id,order, title field name can be amended:

Usage

Then use model-tree in your page

You can modify the display of branch in the following ways:

The $branch parameter is array of current row data.

If you want to modify the query of the model, use the following way:

Last updated