ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

Beego-i18n-ORM操作

2020-04-02 14:01:44  阅读:467  来源: 互联网

标签:设置 Beego name default ORM user orm i18n User


1.beego 支持多语言

I18N = middleware.NewLocale("conf/i18n.conf", beego.AppConfig.String("language"))

配置文件如下:


{
  "E-mail Address": {
    "en": "E-mail Address",
    "zh": "邮箱地址",
    "vn": "อีเมล"
  },
  "Username": {
    "en": "Ussername",
    "zh": "用户名",
    "vn": "tên truy nhập"
  }
}

使用如下:

I18N.Translate("username", "vn")

2.mysql数据库初始化

// 注册数据源,注册模型,创建表
func init() {
	// set default database
	// 参数1        数据库的别名,用来在ORM中切换数据库使用
	// 参数2        driverName
	// 参数3        对应的链接字符串
	// 参数4(可选)  设置最大空闲连接
	// 参数5(可选)  设置最大数据库连接 (go >= 1.2)
	orm.RegisterDataBase("default", "mysql", "root:root@/my_db?charset=utf8", 30,30)

	// register model
	orm.RegisterModel(new(User))
	//orm.RegisterModelWithPrefix("prefix_", new(User))  //使用表名前缀

	// create table
	orm.RunSyncdb("default", false, true)
}

3.查询结构到struct & map

// rows to struct
res := new(Options)
nums, err := o.Raw("SELECT name, value FROM options_table").RowsToStruct(res, "name", "value")

//rows to map
res := make(orm.Params)
nums, err := o.Raw("SELECT name, value FROM options_table").RowsToMap(&res, "name", "value")

var maps []orm.Params
num, err = o.Raw("SELECT user_name FROM user WHERE status = ?", 1).Values(&maps)

4.QueryBuilder使用

// User 包装了下面的查询结果
type User struct {
	Name string
	Age  int
}
var users []User

// 获取 QueryBuilder 对象. 需要指定数据库驱动参数。
// 第二个返回值是错误对象,在这里略过
qb, _ := orm.NewQueryBuilder("mysql")

// 构建查询对象
qb.Select("user.name",
	"profile.age").
	From("user").
	InnerJoin("profile").On("user.id_user = profile.fk_user").
	Where("age > ?").
	OrderBy("name").Desc().
	Limit(10).Offset(0)

// 导出SQL语句
sql := qb.String()

// 执行SQL语句
o := orm.NewOrm()
o.Raw(sql, 20).QueryRows(&users)

5.关联删除

on_delete
设置对应的 rel 关系删除时,如何处理关系字段。
cascade 级联删除(默认值)
set_null 设置为 NULL,需要设置 null = true
set_default 设置为默认值,需要设置 default 值
do_nothing 什么也不做,忽略

type User struct {
	...
	Profile *Profile `orm:"null;rel(one);on_delete(set_null)"` //设置为 NULL
	...
}

相关链接

https://www.kancloud.cn/hello123/beego/126109

标签:设置,Beego,name,default,ORM,user,orm,i18n,User
来源: https://www.cnblogs.com/tomtellyou/p/12619382.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有