我尝试通过调用getProfiePicture()
对象上的User
方法从数据库中获取用户个人资料照片。
方法调用:
<p>${user.getProfilePicture()}</p>
User.groovy 域类:
class Picture {
User user
String url
boolean profile = false
boolean verified = true
static belongsTo = [user: User]
static constraints = {
}
}
Picture.groovy 域名类:
class User {
static hasMany = [pictures: Picture]
String uid = UUID.randomUUID().toString()
String username
String password
String getProfilePicture() {
log.debug("ID: " + id)
log.debug("UID: " + uid)
log.debug("Pictures: " + pictures)
return Picture.findByUserIdAndProfile(id, true)
}
}
图片表:
我在尝试获取个人资料照片时收到此错误:
Class
org.codehaus.groovy.grails.exceptions.InvalidPropertyException
Message
No property found for name [userId] for class [class foo.Picture]
我做错了什么?
我正在使用:
答案 0 :(得分:1)
您可以按以下方式实施getProfilePicture
:
String getProfilePicture() {
Picture.where { user == this && profile == true}.first().url
}
或者,您可以使用动态Finder(如注释中所示)。顺便说一句:Picture Class不需要创建两次用户属性。 static belongsTo = [user: User]
就足够了。
答案 1 :(得分:1)
getProfilePicture()
域类中的User
方法应返回以下内容:
Picture.findByUserAndProfile(this, true)
您收到该错误的原因是您试图通过Picture
找到userId
个实例,该字段不存在。