112 lines
2.9 KiB
PHP
112 lines
2.9 KiB
PHP
<?php
|
||
// +----------------------------------------------------------------------
|
||
// | Catch-CMS Design On 2020
|
||
// +----------------------------------------------------------------------
|
||
// | CatchAdmin [Just Like ~ ]
|
||
// +----------------------------------------------------------------------
|
||
// | Copyright (c) 2017~2020 http://catchadmin.com All rights reserved.
|
||
// +----------------------------------------------------------------------
|
||
// | Licensed ( https://github.com/yanwenwu/catch-admin/blob/master/LICENSE.txt )
|
||
// +----------------------------------------------------------------------
|
||
// | Author: JaguarJack [ njphper@gmail.com ]
|
||
// +----------------------------------------------------------------------
|
||
|
||
namespace catchAdmin\cms\model;
|
||
|
||
use catchAdmin\cms\model\events\ModelFieldsEvent;
|
||
use catchAdmin\cms\support\Helper;
|
||
use catcher\Utils;
|
||
|
||
class ModelFields extends BaseModel
|
||
{
|
||
use ModelFieldsEvent;
|
||
|
||
// 表名
|
||
public $name = 'cms_model_fields';
|
||
// 数据库字段映射
|
||
public $field = array(
|
||
'id',
|
||
// 字段中文名称
|
||
'title',
|
||
// 表单字段名称
|
||
'name',
|
||
// 类型
|
||
'type',
|
||
// 长度
|
||
'length',
|
||
// 默认值
|
||
'default_value',
|
||
'is_index', // 是否是索引
|
||
'is_unique', // 是否是唯一
|
||
'options', // 列表
|
||
'rules', // 验证规则
|
||
'pattern', // 字段正则
|
||
// 模型ID
|
||
'model_id',
|
||
// 展示在列表 1 是 2 否
|
||
'use_at_list',
|
||
// 展示在详情 1 是 2 否
|
||
'use_at_detail',
|
||
// 用作是否搜索 1 是 2 否
|
||
'use_at_search',
|
||
// 创建人ID
|
||
'creator_id',
|
||
'sort',
|
||
'status',
|
||
// 创建时间
|
||
'created_at',
|
||
// 更新时间
|
||
'updated_at',
|
||
// 软删除
|
||
'deleted_at',
|
||
);
|
||
|
||
|
||
const IS_UNIQUE = 1;
|
||
const NOT_UNIQUE = 2;
|
||
|
||
const IS_INDEX = 1;
|
||
const NOT_INDEX = 2;
|
||
|
||
/**
|
||
* 获取模型的动态字段
|
||
*
|
||
* @time 2021年03月08日
|
||
* @param $modelId
|
||
* @throws \think\db\exception\DataNotFoundException
|
||
* @throws \think\db\exception\DbException
|
||
* @throws \think\db\exception\ModelNotFoundException
|
||
* @return \think\Collection
|
||
*/
|
||
public function getFieldsByModelId($modelId): \think\Collection
|
||
{
|
||
return $this->withoutField([
|
||
'created_at', 'deleted_at', 'updated_at',
|
||
])->where('model_id', $modelId)->select();
|
||
}
|
||
|
||
/**
|
||
* 获取规则
|
||
*
|
||
* @time 2021年03月07日
|
||
* @param $value
|
||
* @return string[]
|
||
*/
|
||
public function getRulesAttr($value): array
|
||
{
|
||
return Utils::stringToArrayBy($value);
|
||
}
|
||
|
||
/**
|
||
* 获取选项
|
||
*
|
||
* @time 2021年03月07日
|
||
* @param $value
|
||
* @return mixed
|
||
*/
|
||
public function getOptionsAttr($value)
|
||
{
|
||
// return Helper::getOptions($value);
|
||
return $value;
|
||
}
|
||
} |