Mysql 如何在list.gsp中显示链接表值而不是id?圣杯
所以我有两张相互连接的桌子, 在Mysql 如何在list.gsp中显示链接表值而不是id?圣杯,mysql,grails,gorm,Mysql,Grails,Gorm,所以我有两张相互连接的桌子, 在Create.gsp中,我有一个下拉列表,显示另一个表中的值,当用户单击save时,它会将该值的Id存储在数据库中, 但是,我想显示的是该值本身,而不是gsp列表上的id 可能吗 我有两张桌子: [Authors] - id - name [Books] - id - title - author 在图书表单(创建/编辑)中,我可以让“author”字段显示作者的姓名(从author's table而不是id),而没有任何问题,但是当我查看/list/view
Create.gsp
中,我有一个下拉列表,显示另一个表中的值,当用户单击save
时,它会将该值的Id
存储在数据库中,
但是,我想显示的是该值本身,而不是gsp列表上的id
可能吗
我有两张桌子:
[Authors] - id - name
[Books] - id - title - author
在图书表单(创建/编辑)中,我可以让“author”字段显示作者的姓名(从author's table而不是
id
),而没有任何问题,但是当我查看/list/view时,它会显示作者的id
,而不是姓名(正确,因为这是存储在DB
中的内容).重写作者域中的toString
方法。像这样:
String toString(){
name
}
现在您有了列表ID,因此可以使用OptionKey=“ID”在GSP页面中显示该值
//我想您的值应该是id
如果将该值存储在数据库中,可以尝试以下代码
<g:select name="author" from="${recommendation.list()}"
value="${author}"
noSelection="['':'-- Select Author --']" />
实际上,这种方法不起作用,但我最终通过将变量添加到值中使其起作用,因此这就是我在列表中得到的。gsp${booksInstance?.author?.name}感谢您的帮助Kamal!它到底做什么?我还是Grails的初学者每次在视图中显示实例或使用println
时,Grails都会创建一个可读的字符串。它的默认toString
方法会导致Domain:id
。如果要显示其他内容,可以重写该方法并放置自己的实现。如果使用我的示例,则println authorInstance
和println authorInstance.name
都将显示作者的姓名。图书域的toString
的另一个示例是String toString{“$title by$author”}
;因此,每次你展示一本书,它都会向你展示类似“斯蒂芬·金的作品”。
<g:select name="author" from="${recommendation.list()}"
value="${author}"
noSelection="['':'-- Select Author --']" />