示例#1
0
文件: table.go 项目: rjp/crud
func NewTable(any interface{}) (*Table, error) {
	if meta.IsSlice(any) {
		any = meta.CreateElement(any).Interface()
	}

	fields, err := GetFieldsOf(any)
	if err != nil {
		return nil, err
	}

	SetDefaultPK(fields)

	name := meta.TypeNameOf(any)

	return &Table{
		Name:    name,
		SQLName: snakecase.SnakeCase(name),
		Fields:  fields,
	}, nil
}
示例#2
0
func TestGetTypeNameOf(t *testing.T) {
	assert.Equal(t, meta.TypeNameOf(Foo{}), "Foo")
	assert.Equal(t, meta.TypeNameOf(FooSlice{}), "FooSlice")
	assert.Equal(t, meta.TypeNameOf(&FooPTRSlice{}), "FooPTRSlice")
}
示例#3
0
文件: sql_reflect.go 项目: rjp/crud
func SQLTableNameOf(st interface{}) string {
	return snakecase.SnakeCase(meta.TypeNameOf(st))
}