lowcold / closure-laravel
Installs: 4
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 1
Forks: 0
Open Issues: 0
pkg:composer/lowcold/closure-laravel
This package is auto-updated.
Last update: 2025-12-25 16:00:35 UTC
README
开发者:lowcold
邮箱:79240950@qq.com
ps:如果无法安装,请不要使用国内镜像,国内镜像同步时间未知
安装
composer require lowcold/closure-table
修改关联模型
<?php namespace App\Models; use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Database\Eloquent\SoftDeletes; use lowcold\ClosureTable\ClosureTable; class Member { use ClosureTable, SoftDeletes, HasFactory; // 定义上级字段 const parent = 'parent'; // 定义关联表 const closure = 'member_closure'; }
获取数据的方法示例
<?php $member = Member::find(3); // 获取所有后代 $member->getDescendants()->get()->toArray(); // 获取所有后代,包括自己 $member->getDescendantsAndOwn()->get()->toArray(); // 获取所有祖先 $member->getAncestor()->get()->toArray(); // 获取所有祖先,包括自己 $member->getAncestorAndOwn()->get()->toArray(); // 使用排序 $member->getDescendants()->orderBy('member_closure.distance','desc')->get()->toArray();
移动
// 把10移动到5 Member::find(10)->move(Member::find(5));
# 设置为顶级
```php
Member::find(10)->setRoot();
注意,此处为严重的个人习惯
如果使用了表前缀,请在.env中添加DB_PREFIX=xxxx_
以及把config/database.php中的数组mysql的'prefix' => ''改为'prefix' => env('DB_PREFIX')