Reputation: 262
Utilizing Grails dynamic programming, I want to create a logic that will list all results when no query parameter is provided and filter only those entries when either a single or multiple query parameters are provided.
A domain class A with parameters firstName, lastName, age and address.
def func(){
def c = A.createCriteria()
def results = c.list(){
like('lastName', params.lname)
}
return [results: results]
}
This code returns some output when some query parameter is provided. When no query parameter is provided, it simply returns an empty results list. Is it possible to do all of this inside one function.
I want it to look for provided query parameters and filter the results accordingly, and return all entries if no query parameter is given.
Upvotes: 0
Views: 191
Reputation: 101
add if(params.lname) before like('lastName') to make return all entries if no query parameter is given.
def results = A.createCriteria().list(params){
or{
if(params.lname){
ilike('lastName', '%${params.lname}%')
}
if(params.fname){
eq('firstName', params.fname)
}
}
}
Upvotes: 1