Фильтровать результаты поиска по параметру запроса - PullRequest
0 голосов
/ 24 апреля 2019

Используя динамическое программирование Grails, я хочу создать логику, которая будет перечислять все результаты, когда не задан ни один параметр запроса, и фильтровать только те записи, когда предоставлен один или несколько параметров запроса.

Например

Доменный класс A с параметрами firstName, lastName, age и address .

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

Этот код возвращает некоторые выходные данные, когда какой-либо параметр запросапредоставлена.Если параметр запроса не указан, он просто возвращает пустой список результатов.Возможно ли сделать все это внутри одной функции.

Я хочу, чтобы он посмотрел на предоставленные параметры запроса и соответствующим образом отфильтровал результаты и возвратил все записи, если параметр запроса не задан.

1 Ответ

1 голос
/ 24 апреля 2019

добавьте if (params.lname) перед like ('lastName'), чтобы вернуть все записи, если не задан параметр запроса.

def results = A.createCriteria().list(params){
    or{
        if(params.lname){
        ilike('lastName', '%${params.lname}%')
        }
        if(params.fname){
        eq('firstName', params.fname)
        }
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...