imnpc/nest-tool
Composer 安装命令:
composer require imnpc/nest-tool
包简介
A Laravel Nova resource tool.
README 文档
README
This Nova Package allow you to nest items in hierarchy level.
Installation
composer require aiman/nest-tool
Example Migration Schema
class CreateTopicsTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('topics', function (Blueprint $table) {
$table->id();
$table->text('topic');
$table->text('slug')->nullable();
$table->integer('order')->default(1);
$table->integer('parent_id')->nullable();
$table->timestamps();
$table->softDeletes();
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::dropIfExists('topics');
}
}
Usage
In order to use the nest tool, it requires a model to use which includes a order column, parent column, amd the display name to be shown in each item. Example is shown above
use Aiman\ThaanaTextField\ThaanaTextField;
/**
* Get the fields displayed by the resource.
*
* @param \Illuminate\Http\Request $request
* @return array
*/
public function fields(Request $request)
{
return [
ID::make()->sortable(),
//other fields
NestTool::make()
->usingModel(\App\Models\Topic::class)
->slug('slug')
->orderColumn('order')
->parentColumn('parent_id')
->displayName('topic')
->disable(false)
];
}
Relationship
the model which is entered into usingModel() function should have this relationship
function parent(){
return $this->belongsTo('App\Models\Topic', 'parent_id');
}
function children(){
return $this->hasMany(self::class, 'parent_id')->orderBy('order')->with('children');
}
Model
This function requires the model in which nest tool uses
NestTool::make()->usingModel(\App\Models\Topic::class)
Slug
This function requires the slug field to be displayed. By default it is slug
NestTool::make()->slug('slug')
Order
This function requires the order column name in the model class above which is used for ordering. By default it is order
NestTool::make()->orderColumn('order')
Parent Id
This function requires the parent column name in the model class above which is used for nesting items under a parent item. By default it is parent_id
NestTool::make()->parentColumn('parent_id')
Topic
This function requires the display name's column name in the model class above which is used to display in each item. By default it is topic
NestTool::make()->displayName('topic')
Important
This package is tested for nova 2.0+ Latest tested on nova v3.6.0
imnpc/nest-tool 适用场景与选型建议
imnpc/nest-tool 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 7 次下载、GitHub Stars 达 0, 最近一次更新时间为 2023 年 08 月 22 日, 在 PHP 生态内属于活跃度较高的组件。
它主要适用于以下技术方向: 「nova」 「laravel」 等业务场景。在实际项目中,围绕这些方向常见需要落地的问题包括:接口对接、性能调优、并发安全、与既有框架(Laravel / ThinkPHP / Yii / Webman 等)的兼容适配,以及生产环境的日志埋点与稳定性保障。
我们在过去多个企业项目中使用过 imnpc/nest-tool 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 imnpc/nest-tool 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
与 imnpc/nest-tool 相关的其它包
同方向 / 同关键字的高下载量 PHP Composer 包推荐,方便对比选型:
A Laravel Nova card that shows you your system information.
A Laravel Nova card.
A Laravel Nova package for publishable fields
A Laravel Nova package for translatable fields
A Laravel Nova Image field. you can paste or drag or chose an image
A Laravel Nova Mail testing tool.
统计信息
- 总下载量: 7
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 0
- 点击次数: 23
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2023-08-22
