PHPackages                             dkhlystov/yii2-treegrid - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Framework](/categories/framework)
4. /
5. dkhlystov/yii2-treegrid

ActiveYii2-extension[Framework](/categories/framework)

dkhlystov/yii2-treegrid
=======================

TreeGrid widget for Yii PHP Framework Version 2

v0.1.7(8y ago)85.5k↓52%6[4 issues](https://github.com/dkhlystov/yii2-treegrid/issues)[1 PRs](https://github.com/dkhlystov/yii2-treegrid/pulls)6BSD-3-ClausePHP

Since Feb 3Pushed 8y ago4 watchersCompare

[ Source](https://github.com/dkhlystov/yii2-treegrid)[ Packagist](https://packagist.org/packages/dkhlystov/yii2-treegrid)[ RSS](/packages/dkhlystov-yii2-treegrid/feed)WikiDiscussions master Synced 3d ago

READMEChangelogDependencies (2)Versions (10)Used By (6)

yii2-treegrid
=============

[](#yii2-treegrid)

TreeGrid widget for Yii 2 framework

Installation
------------

[](#installation)

The preferred way to install this extension is through [composer](http://getcomposer.org/download/).

Either run

```
composer require dkhlystov/yii2-treegrid

```

or add

```
"dkhlystov/yii2-treegrid": "*"

```

to the require section of your `composer.json` file.

Basic usage
-----------

[](#basic-usage)

Once the extension is installed, simply use it in your code by :

```

```

Parent relative tree
--------------------

[](#parent-relative-tree)

Check that you correctly set `idAttribute` and `parentIdAttribute` properties. By default it is `id` and `parent_id`. By default root nodes is the nodes with parent id equal to `0`. If you want to change this use `rootParentId`. It is strongly recommended to set `countAttribute` with the name of attribute that contains count of children.

Nested sets tree
----------------

[](#nested-sets-tree)

\[To be written\]

Lazy loading
------------

[](#lazy-loading)

By default the `lazyLoad` property is set to `true`. This mean, that widget automatically will add conditions to `dataProvider` (for `yii\data\ActiveDataProvider`) to load children nodes on demand. Initially widget loads only root and its children.

Controller :

```
    function actionIndex()
    {
        $dataProvider = new ActiveDataProvider([
            'query' => Menu::find(),
        ]);

        return $this->render('index', [
            'dataProvider' => $dataProvider,
        ]);
    }
```

View :

```

```

Roots
-----

[](#roots)

By default the `showRoots` property is set to `false`. To show roots in the tree, set this property to `true`. If you use nested sets tree, make sure that `treeAttribute` property is set correctly. By default it set to `tree`.

Initial node
------------

[](#initial-node)

You can make lazy load tree initially partialy rendered. To do this, set `initialNode` to node that should be visible. Widget will render all parents of this node with their children. All parents will be rendered expanded. It may be usefull when you edit nodes (on redirect to `index` just add `id` of edited node).

Controller :

```
    function actionIndex($id = null)
    {
        $initial = Menu::findOne($id);

        $dataProvider = new ActiveDataProvider([
            'query' => Menu::find(),
        ]);

        return $this->render('index', [
            'dataProvider' => $dataProvider,
            'initial' => $initial,
        ]);
    }
```

View :

```

```

Moving nodes
------------

[](#moving-nodes)

Set `moveAction` property in widget to enable nodes moving. Url will be generated using `yii\helpers\Url::toRoute()` function. Action receives three parameters: `id` - identifier of moving node, `target` - a node identifier, where the movement has been made, `position` - movement position (0 - before target, 1 - into target, 2 - after target).

View :

```
