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) { | ||||
| 	if db.Error == nil { | ||||
| 		BuildQuerySQL(db) | ||||
| 		if db.DryRun { | ||||
| 		if db.DryRun || db.Error != nil { | ||||
| 			return | ||||
| 		} | ||||
| 
 | ||||
|  | ||||
| @ -21,6 +21,8 @@ var ( | ||||
| 	ErrPrimaryKeyRequired = errors.New("primary key required") | ||||
| 	// ErrModelValueRequired 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 = errors.New("unsupported data") | ||||
| 	// ErrUnsupportedDriver unsupported driver
 | ||||
|  | ||||
| @ -120,6 +120,8 @@ func (stmt *Statement) QuoteTo(writer clause.Writer, field interface{}) { | ||||
| 				write(v.Raw, stmt.Schema.PrioritizedPrimaryField.DBName) | ||||
| 			} else if len(stmt.Schema.DBNames) > 0 { | ||||
| 				write(v.Raw, stmt.Schema.DBNames[0]) | ||||
| 			} else { | ||||
| 				stmt.DB.AddError(ErrModelAccessibleFieldsRequired) //nolint:typecheck,errcheck
 | ||||
| 			} | ||||
| 		} else { | ||||
| 			write(v.Raw, v.Name) | ||||
|  | ||||
| @ -1366,3 +1366,17 @@ func TestQueryResetNullValue(t *testing.T) { | ||||
| 	AssertEqual(t, q1, qs[0]) | ||||
| 	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…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 Cr
						Cr