GORM에서 NULL일 수 있는 필드에 대해 sql.NullString을 사용하면 오류:
cannot use "a string goes here", (type string) as type sql.NullString in field value
간단한 GORM 검증 예제를 실행하는 동안.
sql.NullString은 문자열 유형이 아니라 다음과 같이 정의된 구조체 유형입니다.
type NullString struct { String string Valid bool // Valid is true if String is not NULL }
올바르게 초기화하려면 다음 구문을 사용하세요.
db.Create(&Day{ Nameday: "Monday", Dateday: "23-10-2019", Something: sql.NullString{String: "a string goes here", Valid: true}, Holyday: false, })
또는 더 간단한 초기화 구문을 유지하려면:
사용자 정의 nullable 문자열 유형 정의:
type MyString string
재정의 Value() 및 Scan() 메서드는 다음과 같습니다.
func (s MyString) Value() (driver.Value, error) { if s == MyStringNull { return nil, nil } return []byte(s), nil } func (s *MyString) Scan(src interface{}) error { switch v := src.(type) { case string: *s = MyString(v) case []byte: *s = MyString(v) case nil: *s = MyStringNull } return nil }
Something 필드를 MyString으로 선언하고 의도한 대로 초기화합니다.
db.Create(&Day{ Nameday: "Monday", Dateday: "23-10-2019", // Here, an untyped string constant will explicitly convert to MyString because they have the same underlying type. Something: "a string goes here", Holyday: false, })
위 내용은 GORM 및 sql.NullString을 사용하여 Null 허용 문자열 필드를 처리하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!