leandrogehlen/yii2-treegrid

该包已被弃用,不再维护。未建议替代包。

Yii2 框架的 jQuery TreeGrid 扩展

安装数: 151,779

依赖者: 6

推荐者: 0

安全: 0

星标: 51

关注者: 16

分支: 31

开放问题: 6

类型:yii2-extension

1.1.0 2018-01-16 10:34 UTC

This package is auto-updated.

Last update: 2023-10-31 00:22:40 UTC


README

这是 Yii 2 的 jQuery TreeGrid 扩展。它将 TreeGrid 组件封装为 Yii 小部件,从而使在 Yii 应用程序中使用 TreeGrid 组件变得非常简单。

Yii2 Latest Stable Version Total Downloads

安装

安装此扩展的首选方式是通过 composer

运行

php composer.phar require --prefer-dist leandrogehlen/yii2-treegrid "*"

或添加

"leandrogehlen/yii2-treegrid": "*"

到您的 composer.json 文件的 require 部分。

使用方法

模型

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']
        ];
    }
}

控制器

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
        ]);
    }

视图

use leandrogehlen\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']
    ]     
]); ?>

添加资源

当需要添加其他资源文件时,应使用 依赖注入 概念。

要使用 saveState 选项,需要添加 jquery.cookie.js

//config/web.php
  
$config = [
  'id' => 'my-app',
  'components' => [
    ...
  ]
  ...
]

Yii::$container->set('leandrogehlen\treegrid\TreeGridAsset',[
    'js' => [
        'js/jquery.cookie.js',
        'js/jquery.treegrid.min.js',
    ]
]);

return $config;