Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/56.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 如何在list.gsp中显示链接表值而不是id?圣杯_Mysql_Grails_Gorm - Fatal编程技术网

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 --']" />