根据查询参数筛选搜索结果



利用Grails动态规划,我想创建一个逻辑,当没有提供查询参数时,它将列出所有结果,并在提供单个或多个查询参数时仅过滤这些条目。

例如

具有参数名字、姓氏、年龄和地址的域类 A

def func(){
  def c = A.createCriteria()
  def results = c.list(){
    like('lastName', params.lname)
  }
  return [results: results]
}

当提供某些查询参数时,此代码返回一些输出。如果未提供查询参数,则它仅返回一个空的结果列表。是否可以在一个函数中完成所有这些操作。

我希望它查找提供的查询参数并相应地过滤结果,如果没有给出查询参数,则返回所有条目。

like('lastName'(之前添加if(params.lname(,以便在没有给出查询参数的情况下返回所有条目。

def results = A.createCriteria().list(params){
    or{
        if(params.lname){
        ilike('lastName', '%${params.lname}%')
        }
        if(params.fname){
        eq('firstName', params.fname)
        }
    }
}

最新更新