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 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
统计信息
- 总下载量: 712
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 0
- 点击次数: 9
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2020-02-11