Beego脫坑(十三)附加——Tag詳解


title:Beego的Tag詳解
tags: go,beego


我們在文章 Beego的ORM操作之創建表中,對user結構圖用到了一些Tag標籤,現在我們就來詳細的說明下。

模型設置

auto

當 Field 類型爲 int, int32, int64, uint, uint32, uint64 時,可以設置字段爲自增健

type Users struct {
        .....
	 AnyField  int    `orm:"auto"`
}

當模型定義裏沒有主鍵時,符合上述類型且名稱中帶有ID 的 Field 將被視爲自增健,如StuID。

pk

設置爲主鍵,適用於自定義其他類型爲主鍵

type Users struct {
        .....
	 AnyField  int    `orm:"pk"`
}

因爲Tag使用方法都一樣,就不一一貼代碼了
如果想要多個Tag同時使用 可以這樣 orm:"pk;atuo" 這樣就設置爲主鍵自增長。

- 忽略字段

設置 - 即可忽略 struct 中的字段

null

數據庫表默認爲 NOT NULL,設置 null 代表不允許爲空

index

爲單個字段增加索引

unique

爲單個字段增加 unique 鍵,讓該屬性的內容不同重複

column

爲字段設置 db 字段的名稱,就是設置列名

Name string `orm:"column(user_name)"`

size

設置字段大小,如需設置vchar類型最大長度爲60,則用size(60),

digits / decimals

設置 float32, float64 類型的浮點精度

Money float64 `orm:"digits(12);decimals(4)"`

auto_now / auto_now_add

  • auto_now 每次 model 保存時都會對時間自動更新
  • auto_now_add 第一次保存時才設置時間
Created time.Time `orm:"auto_now_add;type(datetime)"`
Updated time.Time `orm:"auto_now;type(datetime)"`

注意: 對於批量的 update 此設置是不生效的

type

-設置爲 date 時,time.Time 字段的對應 db 類型使用 date

Created time.Time `orm:"auto_now_add;type(date)"`
  • 設置爲 datetime 時,time.Time 字段的對應 db 類型使用 datetime
Created time.Time `orm:"auto_now_add;type(datetime)"`

default

爲字段設置默認值,類型必須符合(目前僅用於級聯刪除時的默認值)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章