0
插入的Grails Domain對象,我有兩個領域類:與外鍵
class User {
Client client
String firstName
String lastName
String email
String password
String address
String city
String state
String zip
String phone
Integer active
Date changedate
static belongsTo = [client : Client]
static constraints = {
firstName(nullable: false, blank:false)
lastName(nullable: false, blank:false)
email(nullable: false, blank: false)
address(nullable:false,blank:false)
city(nullable:false,blank:false)
state(nullable:false,blank:false)
zip(nullable:false,blank:false)
phone(nullable:false,blank:false)
active(nullable:false,blank:false)
changedate(nullable:false,blank:false)
}
}
class Client {
String name
String webaddress
String address
String city
String state
String zip
String phone
Integer active
Date changedate
static constraints = {
name(unique:true, nullable: false, blank:false)
address(nullable:false,blank:false)
city(nullable:false,blank:false)
state(nullable:false,blank:false)
zip(nullable:false,blank:false)
phone(nullable:false,blank:false)
active(nullable:false,blank:false)
changedate(nullable:false,blank:false)
}
}
現在兩個表生成和外鍵從用戶的存在是爲了客戶。儘管閱讀了Grails的幫助文檔,但我仍然無法爲自己的生活找出如何在相應的客戶端插入用戶記錄。這是我的控制器中的當前代碼。客戶端插入正確,但不會插入用戶記錄。
def register(){
Client newClient = new Client (
name: params.Company,
webaddress: params.WebAddress,
address: params.CompanyAddress,
city: params.CompanyCity,
state: params.CompanyState,
zip: params.CompanyZip,
phone: params.CompanyPhone,
active: 1,
changedate: new Date()
)
newClient.save()
User user = new User (
client: newClient,
firstName: params.FirstName,
lastName: params.LastName,
email: params.userName,
password: params.Password,
address: params.Address,
city: params.City,
state: params.State,
zip: params.Zip,
phone: params.Phone,
active: 1,
changedate: new Date()
)
user.save()
}
的代碼看起來不錯。您沒有提供足夠的信息來說明問題,但可能會在保存用戶時驗證失敗。嘗試'user.save(failOnError:true)'或在調用'user.save()'後打印'user.errors'。 –
'params.userName'是一個嫌犯。常見的情況是你的請求參數名以小寫字母開頭,但因爲其他所有字母都以大寫字母開頭,所以我懷疑實際參數名可能是'UserName',在這種情況下'params.userName'將評估爲null。既然你將它分配給不能爲空的'email'屬性,如果'params.userName'爲空就可以解釋問題。 –
Eek,userName確實有一個大寫的U以及一個P的密碼。有時你讓學習一種新語言的挫敗感讓你忘記了編碼的基礎知識。感謝幫助傢伙,用戶剛插入。我感到很傻。 – user1769667