jianyan74/

yii2-treegrid

Yii2 框架扩展,用于与 jQuery TreeGrid 一起工作

安装数: 15,515

依赖关系: 1

建议者: 0

安全: 0

星标: 1

关注者: 2

分支: 2

开放问题: 0

语言:JavaScript

类型:yii2-extension

1.0.1 2019-10-28 02:05 UTC

This package is auto-updated.

Last update: 2024-09-28 16:39:58 UTC


README

这是为 Yii 2 开发的 jQuery TreeGrid 扩展。它将 TreeGrid 组件封装在 Yii 小部件中,因此使得在 Yii 应用程序中使用 TreeGrid 组件变得极其简单。

由于 leandrogehlen/yii2-treegrid 维护不足,因此建立此项目。

Yii2 Latest Stable Version Total Downloads

安装

安装此扩展的最佳方式是通过 composer

运行以下命令:

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

或者将以下内容添加到您的 composer.json 文件的 require 部分中:

"jianyan74/yii2-treegrid": "*"

使用方法

模型

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 jianyan\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('jianyan\treegrid\TreeGridAsset',[
    'js' => [
        'js/jquery.cookie.js',
        'js/jquery.treegrid.min.js',
    ]
]);

return $config;