hjp1011/yii2-treegrid

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

安装次数: 513

依赖项: 0

建议者: 0

安全: 0

星标: 0

关注者: 1

分支: 0

公开问题: 0

语言:JavaScript

类型:yii2-extension

1.0.0 2021-12-18 18:47 UTC

This package is not auto-updated.

Last update: 2024-09-23 05:51:19 UTC


README

这是为Yii 2开发的jQuery TreeGrid扩展。它通过Yii小部件的形式封装了TreeGrid组件,使得在Yii应用中使用TreeGrid组件变得极其简单。该项目是在原始仓库不稳定的情况下建立的。

Latest Stable Version Total Downloads Latest Unstable Version License PHP Version Require

安装

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

运行以下命令:

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

或者

"hjp1011/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 yiiframe\treegrid\Auth;
  
<?= Auth::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('yiiframe\treegrid\TreeGridAsset',[
    'js' => [
        'js/jquery.cookie.js',
        'js/jquery.treegrid.min.js',
    ]
]);

return $config;