mirror of https://github.com/go-gorm/gorm.git
fix:throw model value required error (#6031)
* fix:throw model value required error * chore:ingore typecheck * chore:ingore errcheck * refactor: use other error * chore: gofumpt style
This commit is contained in:
parent
e1f46eb802
commit
878ac51e98
|
@ -7,7 +7,7 @@ import (
|
||||||
func RowQuery(db *gorm.DB) {
|
func RowQuery(db *gorm.DB) {
|
||||||
if db.Error == nil {
|
if db.Error == nil {
|
||||||
BuildQuerySQL(db)
|
BuildQuerySQL(db)
|
||||||
if db.DryRun {
|
if db.DryRun || db.Error != nil {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -21,6 +21,8 @@ var (
|
||||||
ErrPrimaryKeyRequired = errors.New("primary key required")
|
ErrPrimaryKeyRequired = errors.New("primary key required")
|
||||||
// ErrModelValueRequired model value required
|
// ErrModelValueRequired model value required
|
||||||
ErrModelValueRequired = errors.New("model value required")
|
ErrModelValueRequired = errors.New("model value required")
|
||||||
|
// ErrModelAccessibleFieldsRequired model accessible fields required
|
||||||
|
ErrModelAccessibleFieldsRequired = errors.New("model accessible fields required")
|
||||||
// ErrInvalidData unsupported data
|
// ErrInvalidData unsupported data
|
||||||
ErrInvalidData = errors.New("unsupported data")
|
ErrInvalidData = errors.New("unsupported data")
|
||||||
// ErrUnsupportedDriver unsupported driver
|
// ErrUnsupportedDriver unsupported driver
|
||||||
|
|
|
@ -120,6 +120,8 @@ func (stmt *Statement) QuoteTo(writer clause.Writer, field interface{}) {
|
||||||
write(v.Raw, stmt.Schema.PrioritizedPrimaryField.DBName)
|
write(v.Raw, stmt.Schema.PrioritizedPrimaryField.DBName)
|
||||||
} else if len(stmt.Schema.DBNames) > 0 {
|
} else if len(stmt.Schema.DBNames) > 0 {
|
||||||
write(v.Raw, stmt.Schema.DBNames[0])
|
write(v.Raw, stmt.Schema.DBNames[0])
|
||||||
|
} else {
|
||||||
|
stmt.DB.AddError(ErrModelAccessibleFieldsRequired) //nolint:typecheck,errcheck
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
write(v.Raw, v.Name)
|
write(v.Raw, v.Name)
|
||||||
|
|
|
@ -1366,3 +1366,17 @@ func TestQueryResetNullValue(t *testing.T) {
|
||||||
AssertEqual(t, q1, qs[0])
|
AssertEqual(t, q1, qs[0])
|
||||||
AssertEqual(t, q2, qs[1])
|
AssertEqual(t, q2, qs[1])
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestQueryError(t *testing.T) {
|
||||||
|
type P struct{}
|
||||||
|
var p1 P
|
||||||
|
err := DB.Take(&p1, 1).Error
|
||||||
|
AssertEqual(t, err, gorm.ErrModelAccessibleFieldsRequired)
|
||||||
|
|
||||||
|
var p2 interface{}
|
||||||
|
|
||||||
|
err = DB.Table("ps").Clauses(clause.Eq{Column: clause.Column{
|
||||||
|
Table: clause.CurrentTable, Name: clause.PrimaryKey,
|
||||||
|
}, Value: 1}).Scan(&p2).Error
|
||||||
|
AssertEqual(t, err, gorm.ErrModelValueRequired)
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in New Issue