mradang/laravel-custom-field 问题修复 & 功能扩展

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

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

mradang/laravel-custom-field

Composer 安装命令:

composer require mradang/laravel-custom-field

包简介

laravel-custom-field

README 文档

README

为模型增加字段定制功能

安装

composer require mradang/laravel-custom-field

添加的内容

添加的数据表迁移

  • custom_field_groups
  • custom_fields
  • custom_field_values

定制字段功能

控制器 Trait

use mradang\LaravelCustomField\Traits\CustomFieldControllerTrait;

增加以下内容:

// 指定定制模型类(未重载该函数时,默认使用控制器同名模型)
customFieldModel()
// 获取基本字段
getBaseFields()
// 获取基本分组信息
getBaseGroups()
// 保存字段分组
saveFieldGroup(Request $request) // [id, name]
// 获取字段分组
getFieldGroups()
// 获取字段分组带字段
getFieldGroupsWithFields() // [ids]
// 删除字段分组
deleteFieldGroup(Request $request) // [id]
// 字段分组排序
sortFieldGroups(Request $request) // [{id, sort}]
// 保存字段
saveField(Request $request) // [id, name, type, options, group_id]
// 获取字段
getFields()
// 删除字段
deleteField(Request $request) // [id]
// 字段排序
sortFields(Request $request) // [{id, sort}]
// 字段移动
moveField(Request $request) // [id, group_id]

模型 Trait

use mradang\LaravelCustomField\Traits\CustomFieldTrait;

增加以下内容

// 模型基本字段定义
Model::customFieldBaseFields() // [field => label, ...]
// 模型基本分组信息
Model::customFieldBaseGroups() // [base => '基本组名', default => '默认组名']
// 定制字段名在所有组中唯一
Model::customFieldGloballyUnique(): bool // false
// 定制字段在指定组内唯一(默认是字段所在的组内唯一)
Model::customFieldUniqueWithinGroupIds($group_id): array // [$group_id]
// 获取字段分组
Model::customFieldGroups()
// 获取字段分组带字段
Model::customFieldGroupsWithFields($group_id)
// 创建字段分组
Model::customFieldGroupCreate($name)
// 确保字段分组存在
Model::customFieldGroupEnsureExists($name)
// 更新字段分组
Model::customFieldGroupUpdate($id, $name)
// 删除字段分组
Model::customFieldGroupDelete($id)
// 字段分组排序
Model::customFieldGroupSaveSort(array $data)
// 获取字段
Model::customFields()
// 按分组获取字段
Model::customFieldsByGroupId($id)
// 创建字段
Model::customFieldCreate($name, $type, array $options = [], $group_id = 0)
// 修改字段
Model::customFieldUpdate($id, $name, $type, array $options = [], $group_id = 0)
// 删除字段
Model::customFieldDelete($id)
// 字段排序
Model::customFieldSaveSort(array $data)
// 字段移动
Model::customFieldMove($id, $group_id)
// 清理全部定制字段值
Model::customFieldClearAllValues()
// 批量保存定制字段数据
Model::customFieldBatchSaveData(array $data)
// 保存定制字段数据
$model->customFieldSaveData(array $data)
// 保存单个定制字段数据
$model->customFieldSaveDataItem(int $field_id, $value)
// 获取单个定制字段数据
$model->customFieldGetDataItem(int $field_id)
// 取定制字段数据
array $model->customFieldData
// 清理字段值
$model->customFieldClearValues()

关联关系

  • customFieldValues

根据需要增加路由

Route::post('getBaseFields', 'XXXXController@getBaseFields');
Route::post('getBaseGroups', 'XXXXController@getBaseGroups');
Route::post('getFieldGroups', 'XXXXController@getFieldGroups');
Route::post('getFields', 'XXXXController@getFields');

Route::post('saveFieldGroup', 'XXXXController@saveFieldGroup');
Route::post('deleteFieldGroup', 'XXXXController@deleteFieldGroup');
Route::post('sortFieldGroups', 'XXXXController@sortFieldGroups');
Route::post('saveField', 'XXXXController@saveField');
Route::post('deleteField', 'XXXXController@deleteField');
Route::post('sortFields', 'XXXXController@sortFields');
Route::post('moveField', 'XXXXController@moveField');

模型删除时自动清理定制字段值

protected static function boot()
{
    parent::boot();
    static::deleting(function ($model) {
        $model->customFieldClearValues();
    });
}

mradang/laravel-custom-field 适用场景与选型建议

mradang/laravel-custom-field 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 712 次下载、GitHub Stars 达 0, 最近一次更新时间为 2020 年 02 月 11 日, 在 PHP 生态内属于活跃度较高的组件。

我们在过去多个企业项目中使用过 mradang/laravel-custom-field 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。

围绕 mradang/laravel-custom-field 我们能提供哪些服务?
定制开发 / 二次开发

基于 mradang/laravel-custom-field 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。

BUG 修复 & 性能优化

线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。

项目外包 & 长期维护

承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。

yvsm@zunyunkeji.com QQ:316430983 微信:yvsm316 西安尊云信息科技 · 专注 PHP / Go / 分布式系统研发

统计信息

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

GitHub 信息

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

其他信息

  • 授权协议: MIT
  • 更新时间: 2020-02-11