我使用的是 Grails 2.2.3 和 Fields 插件 1.3。 我想使用 select 标签自定义字段来管理一对多关系。
在 views/_fields/oneToMany/_input.gsp
我有:
<g:select name="${property}.id" from="${type.list()}" optionKey="id" value="${value}" class="form-control one-to-many" noSelection="['null': "${label}"]" />
但是type
是一个集合,所以我不能使用list
函数。
如何检索目标域类?
最佳答案
只要你用一个Map来声明关系,例如:
static hasMany = [ books: Book ]
可以从bean的hasMany
属性中获取引用域的列表,这是key,所以from
属性应该改成
from="${bean.hasMany[property].list()}"
或者,您可以将列表传递给 _input.gsp
模板,在变量名称前加上 input-
,例如
<f:field property="books" input-domainList="${bookInstaceList}" />
在 _input.gsp
模板中,您可以按如下方式使用变量:
from="${domainList}"
或混合两种方法:
from"${domainList ?: bean.hasMany[property].list()}"
关于Grails 字段插件 : Select tag for one-to-many relationships,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20653144/