igorkri/yii2-tree-manager
Composer 安装命令:
composer require igorkri/yii2-tree-manager
包简介
An enhanced tree management module with tree node selection and manipulation using nested sets.
关键字:
README 文档
README
$ composer require igorkri/yii2-tree-manager "~1.0.0"
or add
"igorkri/yii2-tree-manager": "~1.0.0"
to the require section of your composer.json file.
Usage
Step 1: Prepare Database
Create your database table to store the tree structure. You can do it in one of the following ways:
Option 1: Run DB Migrations
You can run the migrations script provided to create the database structure from your yii programming console:
php yii migrate/up --migrationPath=@vendor/igorkri/yii2-tree-manager/src/migrations
Option 2: Executing SQL script
Alternatively, you can execute the SQL script to generate your DB structure. Copy and modify the migrations/tree.sql file (a MySQL example), to create the table tbl_tree (or for any table name you need).
NOTE: You can add columns you need to this table, but you cannot skip/drop any of the columns mentioned in the script. You can choose to rename the
id,root,lft,rgt,lvl,name,icon,icon_typecolumns if you choose to - but these must be accordingly setup in the module.
Alternatively, you can configure your model to not extend from igorkri\tree\models\Tree and instead implement and use the igorkri\tree\models\TreeTrait:
namespace frontend\models; use Yii; class Tree extends \yii\db\ActiveRecord { use igorkri\tree\models\TreeTrait; /** * @inheritdoc */ public static function tableName() { return 'tbl_tree'; } }
Step 3: Setup Module
Configure the module named treemanager in the modules section of your Yii configuration file.
'modules' => [ 'treemanager' => [ 'class' => '\igorkri\tree\Module', // other module settings, refer detailed documentation ] ]
Step 4: Using TreeView Widget
In your view files, you can now use the tree view directly to manage tree data as shown below:
use igorkri\tree\TreeView; echo TreeView::widget([ // single query fetch to render the tree 'query' => Tree::find()->addOrderBy('root, lft'), 'headingOptions' => ['label' => 'Categories'], 'isAdmin' => false, // optional (toggle to enable admin mode) 'displayValue' => 1, // initial display value //'softDelete' => true, // normally not needed to change //'cacheSettings' => ['enableCache' => true] // normally not needed to change ]);
Step 5: Using TreeViewInput Widget
If you wish to use the tree input to select tree items, you can use the TreeViewInput widget as shown below. Normally you would use this as a dropdown with the asDropdown property set to true. If asDropdown is set to false, the treeview input widget will be rendered inline for selection.
use igorkri\tree\TreeViewInput; echo TreeViewInput::widget([ // single query fetch to render the tree 'query' => Tree::find()->addOrderBy('root, lft'), 'headingOptions' => ['label' => 'Categories'], 'name' => 'kv-product', // input name 'value' => '1,2,3', // values selected (comma separated for multiple select) 'asDropdown' => true, // will render the tree input widget as a dropdown. 'multiple' => true, // set to false if you do not need multiple selection 'fontAwesome' => true, // render font awesome icons 'rootOptions' => [ 'label' => '<i class="fa fa-tree"></i>', 'class'=>'text-success' ], // custom root label //'options' => ['disabled' => true], ]);
igorkri/yii2-tree-manager 适用场景与选型建议
igorkri/yii2-tree-manager 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 37 次下载、GitHub Stars 达 0, 最近一次更新时间为 2023 年 06 月 07 日, 在 PHP 生态内属于活跃度较高的组件。
它主要适用于以下技术方向: 「tree」 「nestedset」 「set」 「nested」 「treeview」 等业务场景。在实际项目中,围绕这些方向常见需要落地的问题包括:接口对接、性能调优、并发安全、与既有框架(Laravel / ThinkPHP / Yii / Webman 等)的兼容适配,以及生产环境的日志埋点与稳定性保障。
我们在过去多个企业项目中使用过 igorkri/yii2-tree-manager 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 igorkri/yii2-tree-manager 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
与 igorkri/yii2-tree-manager 相关的其它包
同方向 / 同关键字的高下载量 PHP Composer 包推荐,方便对比选型:
Simple, immutable data structures
Laravel 8 nested categories library
jsTree widget for yii2
An enhanced tree management module with tree node selection and manipulation using nested sets.
Doctrine2 behavior traits - slowhop fork
Baum is an implementation of the Nested Set pattern for Eloquent models.
统计信息
- 总下载量: 37
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 0
- 点击次数: 19
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: BSD-3-Clause
- 更新时间: 2023-06-07