2013-03-13 3 views
3

Есть ли способ автоматически обернуть все поиски с помощью шаблона?Grails Plugin Searchable - поиск по шаблону по умолчанию

.: например

Book.search("*${params.q}*", params) 
+0

Вы можете попробовать его в UrlMapping (HTTP : //grails.org/doc/latest/guide/single.html#urlmappings) с использованием произвольных переменных? –

ответ

2

Я не знаком с .search (вы используете плагин?). Однако для поиска подстановочных знаков в моделях я обычно создаю метод внутри класса модели домена. В вашем примере,

В классе модели Книга:

class Book { 
    String title 
    String author 
    int year 

    static List wildSearch(par, val) { 
     def foundList = this.executeQuery("select b FROM Book b WHERE ${par} like \'%${val}%\'") 
     return foundList 
    } 
} 

В контроллере:

def searchBook = { 
    def b1 = new Book(title: "Farewell To Arms", author: "Ernest Hemingway").save() 
    def b2 = new Book(title: "The Brother's Karamazov", author: "Anton Chekov").save() 
    def b3 = new Book(title: "Brothers in Arms", author: "Cherry Dalton").save() 

    // If you search for "Arms", This returns b1 and b3 
    def found = Book.wildSearch("title", params.title) 
} 

Пример URL:

http://localhost:8080/mytest/mycontroller/searchBooks?title=Arms  
+0

Searchable - это плагин Grails, который упрощает поиск. Спасибо за предложение, но я хотел бы узнать, есть ли способ установить плагин по умолчанию. – Nix

+0

Должен был лучше прочитать название вопроса. Извини за это. – ibaralf