r0m1g0 / yii2-treegrid
Extension for Yii2 Framework to work with jQuery TreeGrid
Installs: 17
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 1
Forks: 31
Open Issues: 0
Type:yii2-extension
Requires
- bower-asset/jquery-cookie: >= 1.4.1
- bower-asset/jquery-treegrid: 0.3.0
- yiisoft/yii2: ~2.0.13
Requires (Dev)
- phpunit/phpunit: 3.7.*
README
This is the jQuery TreeGrid extension for Yii 2. It encapsulates TreeGrid component in terms of Yii widgets, and thus makes using TreeGrid component in Yii applications extremely easy
Installation
The preferred way to install this extension is through composer.
Either run
php composer.phar require --prefer-dist r0m1g0/yii2-treegrid "*"
or add
"r0m1g0/yii2-treegrid": "*"
to the require section of your composer.json
file.
Usage
Model
use yii\db\ActiveRecord; /** * @property string $description * @property integer $parent_id */ class Tree extends ActiveRecord { /** * @inheritdoc */ public static function tableName() { return 'tree'; } /** * @inheritdoc */ public function rules() { return [ [['description'], 'required'], [['description'], 'string'], [['parent_id'], 'integer'] ]; } }
Controller
use yii\web\Controller; use Yii; use yii\data\ActiveDataProvider; class TreeController extends Controller { /** * Lists all Tree models. * @return mixed */ public function actionIndex() { $query = Tree::find(); $dataProvider = new ActiveDataProvider([ 'query' => $query, 'pagination' => false ]); return $this->render('index', [ 'dataProvider' => $dataProvider ]); }
View
use r0m1g0\treegrid\TreeGrid; <?= TreeGrid::widget([ 'dataProvider' => $dataProvider, 'keyColumnName' => 'id', 'parentColumnName' => 'parent_id', 'parentRootValue' => '0', //first parentId value 'pluginOptions' => [ 'initialState' => 'collapsed', ], 'columns' => [ 'name', 'id', 'parent_id', ['class' => 'yii\grid\ActionColumn'] ] ]); ?>
Adding resources
When is necessary to add other resource files, then should be used the Dependency Injection concept.
To use the saveState
option it's necessary to add jquery.cookie.js
.
//config/web.php $config = [ 'id' => 'my-app', 'components' => [ ... ] ... ] Yii::$container->set('r0m1g0\treegrid\TreeGridAsset',[ 'js' => [ 'js/jquery.cookie.js', 'js/jquery.treegrid.min.js', ] ]); return $config;