Documentation
¶
Overview ¶
Package model
Index ¶
- func RegisterDefaultFunc(fn DefaultFunc, tag string, fields ...interface{})
- func RegisterDefaultPrepareFunc(fn DefaultPrepareFunc, tag string, fields ...interface{})
- type Default
- type DefaultFunc
- type DefaultPrepareFunc
- type Field
- func (field *Field) GetDefaultValue(ctx context.Context) interface{}
- func (field *Field) HaveDefaultValue() bool
- func (field *Field) New() interface{}
- func (field *Field) Parse(value string) (interface{}, error)
- func (field Field) ReadOnly() bool
- func (field Field) Where() string
- func (field Field) WhereValue(value interface{}) interface{}
- type Gorm
- type IFieldDefault
- type IFieldDefaultPrepare
- type Json
- type Model
- func (model *Model) CheckPrimaryKey() error
- func (model *Model) FieldNames(data map[string]interface{}) []string
- func (model *Model) Init()
- func (model *Model) New() interface{}
- func (model *Model) NewSlice() interface{}
- func (model *Model) Parse(b []byte) (interface{}, error)
- func (model *Model) ParseDefault(ctx context.Context, data interface{}, input map[string]interface{}) error
- func (model *Model) ParseDefaultWithKeys(ctx context.Context, data interface{}, keys []string, ...) error
- func (model *Model) ParseFromQuery(query map[string]string) (interface{}, error)
- func (model *Model) ParsePrimaryKey(primaryKey string) (interface{}, error)
- func (model *Model) Where(query *gorm.DB, key string, value interface{}) *gorm.DB
- type Operate
- type Unmarshaler
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func RegisterDefaultFunc ¶
func RegisterDefaultFunc(fn DefaultFunc, tag string, fields ...interface{})
RegisterDefaultFunc 注册默认值处理函数
func RegisterDefaultPrepareFunc ¶
func RegisterDefaultPrepareFunc(fn DefaultPrepareFunc, tag string, fields ...interface{})
RegisterDefaultPrepareFunc 注册默认值预处理函数
Types ¶
type Default ¶
type Default struct { Value string ValueInterface interface{} DefaultFunc DefaultFunc // contains filtered or unexported fields }
func NewDefault ¶
func NewDefault(field reflect.StructField) *Default
func (*Default) HaveDefault ¶
type DefaultFunc ¶
func GetDefaultFunc ¶
func GetDefaultFunc(field interface{}, tag string) DefaultFunc
GetDefaultFunc 获取默认值处理函数
type DefaultPrepareFunc ¶
func GetDefaultPrepareFunc ¶
func GetDefaultPrepareFunc(field interface{}, tag string) DefaultPrepareFunc
GetDefaultPrepareFunc 获取默认值预处理函数
type Field ¶
type Field struct { FieldType reflect.Type PrimaryKey bool JsonKey string // 空表示不能从json读写 DBKey string // 空表示不与数据库交互 Gorm *Gorm Json *Json Default *Default Operate *Operate }
func NewField ¶
func NewField(field reflect.StructField) *Field
func (*Field) GetDefaultValue ¶
func (*Field) HaveDefaultValue ¶
func (Field) WhereValue ¶
func (field Field) WhereValue(value interface{}) interface{}
type Gorm ¶
func NewGorm ¶
func NewGorm(field reflect.StructField) *Gorm
NewGorm 创建一个gorm tag分析的struct 注意这里只使用了默认的列名策略,支持自定义策略,需要透传db对象,过于复杂
type IFieldDefault ¶
type IFieldDefaultPrepare ¶
type Model ¶
type Model struct { ModelInterface interface{} ModelType reflect.Type // DB 主键标识 PrimaryKey string // struct名到json字段 Name2Json map[string]string // struct名到db列 Name2Column map[string]string // json字段到struct名 Json2Name map[string]string // db列到struct名 Column2Name map[string]string // struct名到db列 Name2Field map[string]*Field }
Model model解析类
func NewModel ¶
func NewModel(model interface{}) *Model
NewModel NewParser Model 实例化,确保尽在启动阶段调用,而不会在请求处理阶段调用
func (*Model) CheckPrimaryKey ¶
func (*Model) FieldNames ¶
func (*Model) ParseDefault ¶
func (model *Model) ParseDefault(ctx context.Context, data interface{}, input map[string]interface{}) error
ParseDefault 解析默认值,添加的默认值会被记录到input中
func (*Model) ParseDefaultWithKeys ¶
func (model *Model) ParseDefaultWithKeys(ctx context.Context, data interface{}, keys []string, input map[string]interface{}) error
ParseDefaultWithKeys 按固定输入key解析默认值,添加的默认值会被记录到input中
func (*Model) ParseFromQuery ¶
ParseFromQuery 注意返回的是model的指针
func (*Model) ParsePrimaryKey ¶
ParsePrimaryKey 注意返回的是model的指针
type Operate ¶
func NewOperate ¶
func NewOperate(field reflect.StructField) *Operate
type Unmarshaler ¶
Click to show internal directories.
Click to hide internal directories.