ohhink/relation 问题修复 & 功能扩展

解决BUG、新增功能、兼容多环境部署,快速响应你的开发需求

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

ohhink/relation

Composer 安装命令:

composer require ohhink/relation

包简介

User Hierarchical Relationship

README 文档

README

standard-readme compliant

English 中文

快速创建层级架构,可用于上下级明确,多层级的任意应用

本拓展包运行基础环境:

  1. Php >= 8.0
  2. Laravel Version >= 8.6

内容列表

背景

在实际开发中,经常会碰到多层级的组织架构。例如:

 A 项目 -> B 项目 -> C 项目 -> D 项目 ... -> Z 项目
 
 表示:Z项目属于A项目的N级子项目

当Z向上找A,或者A向下找Z的时候,如果处理不当,任务的时间复杂度就会变成O(N)。

此拓展包可将上述情况的时间复杂度变为O(1),并提供相应接口,实现隐式调用。

安装

在项目根目录运行 composer

$ composer require ohhink/relation

根目录下运行资源发布,此命令会增加配置文件(relationship.php)

$ php artisan vendor:publish

根目录下运行数据库迁移填充命令

# run autoload first
$ composer dump-autoload
$ php artisan migrate

向 User 模型添加 HasRelationship Trait

<?php

namespace App\Models;

use Ohh\Relation\App\Models\Traits\HasRelationship;

class User extends Authenticatable
{
    use HasApiTokens, HasFactory, Notifiable, HasRelationship;
}

至此,安装完毕

使用说明

方法名 居中对齐 示例
directChildren 获取直接下级 $user->directChildren
directParent 获取直接上级 $user->directParent
recursionChildren 已当前节点,向下生成树 $user->recursionChildren
sblings 获取兄弟节点 $user->sblings
allChildren 获取全部下级, asc 依次向下 / desc 从最底层往上 $user->allChildren() / User::allChildren(1, "asc")
allParents 获取全部上级, asc 依次向上 / desc 从最高层向下 $user->allParents() / User::allParents(5, "asc")
transfer 转移节点,成为目标节点的子节点 $user->transfer(1) / User::transfer(1, 5)
delNode 删除当前节点,用下级节点代替本级节点 $user->delNode() / User::delNode(1)
removeNode 删除当前节点及子节点 $user->removeNode() / User::removeNode(1)

维护者

@OhhInk.

如何贡献

非常欢迎你的加入! 有任何问题或者想要贡献代码,请提交 issue

使用许可

MIT © OhhInk

统计信息

  • 总下载量: 6
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 0
  • 点击次数: 0
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 0
  • Watchers: 1
  • Forks: 0
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2021-10-20

承接程序开发

PHP开发

VUE

Vue开发

前端开发

小程序开发

公众号开发

系统定制

数据库设计

云部署

网站建设

安全加固