jQuery TreeGrid Extension for Yii 2
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, (*1)
Based on leandrogehlen/yii2-treegrid., (*2)
Installation
The preferred way to install this extension is through composer., (*3)
Either run, (*4)
php composer.phar require --prefer-dist aadutskevich/yii2-treegrid "*"
or add, (*5)
"aadutskevich/yii2-treegrid": "*"
to the require section of your composer.json
file., (*6)
How to use
Model, (*7)
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, (*8)
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,
]);
return $this->render('index', [
'dataProvider' => $dataProvider
]);
}
View, (*9)
use aadutskevich\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']
]
]); ?>