grails中的过滤结果字段
您好,我是Grails新手,希望了解如何在Grails中过滤两个字段的结果。我应该在视图中执行,还是应该在域类中执行?我该怎么做 在以下示例中,我有3个类:grails中的过滤结果字段,grails,foreign-keys,Grails,Foreign Keys,您好,我是Grails新手,希望了解如何在Grails中过滤两个字段的结果。我应该在视图中执行,还是应该在域类中执行?我该怎么做 在以下示例中,我有3个类: 国家 陈述 地址 字段状态应仅显示基于国家/地区的筛选结果。此时将显示State对象中的所有状态。下面的屏幕截图描述了此问题 以下是我的代码 class Country { static constraints = { } String countryName static hasMany = [s
class Country {
static constraints = {
}
String countryName
static hasMany = [state : State ]
}
class State {
static constraints = {
}
String stateName
static belongsTo = [ country : Country ]
}
class Address {
static constraints = {
}
String line1
String line2
Country country
State state
}
感谢您的帮助。非常感谢你 你在使用脚手架吗 如果是这样,Grails将呈现所有适当的表单控件,除非您排除它们,例如
static constraints = {
country display:false
}
然而,我不认为你需要把国家和地址联系起来,因为地址和州之间有联系,而州也有联系,所以地址和国家之间的联系在选择州后是隐含的
编辑1
如果你想保持目前的模式,你可能不得不离开脚手架,自己实施行动和普惠制
控制器:
def create() {
def states
if ( params.country ) {
states = State.findByCountry(params.country)
}
[countries: Country.all, states: states]
}
普惠制:
以上内容应视为伪代码,以提供可能的解决方案谢谢Mike!你说的地址和国家之间的联系是对的。地址和国家/地区之间的关联隐含在State中。但是,为了使选择更方便用户(世界上可能有数千个州),如何仅显示用户选择的国家/地区的状态?这将大大减少用户的选择。再次感谢您的帮助。更新了答案,详细介绍了保持当前型号的可能方法。谢谢您,迈克!非常感谢你的帮助@YSL如果答案有帮助,你能接受它或投票吗,
<g:select class="form-control"
name="country"
from="${countries}"
optionKey="${it}"
value="${params.country}"
required="required"
onchange="submit()"
noSelection="['':'Select country']" />
<g:if test="${params.country}">
<g:select class="form-control"
name="state"
from="${states}"
optionKey="${it}"
value="${params.state}"
required="required"
noSelection="['':'Select state']" />
</g:if>