我想在可序列化域中使用可搜索插件。
现在的问题是,如果我添加此代码,它不会编译:
类产品实现可序列化{
静态瞬变=['可搜索']
静态可搜索 = true
我不知道这个可搜索插件是如何工作的。此外,我在域 Product 中也有 hasMany 和 belongsTo 关系。其他也是可序列化的域
所以请 cud 任何人告诉我使这个域可搜索的正确方法
我想在可序列化域中使用可搜索插件。
现在的问题是,如果我添加此代码,它不会编译:
类产品实现可序列化{
静态瞬变=['可搜索']
静态可搜索 = true
我不知道这个可搜索插件是如何工作的。此外,我在域 Product 中也有 hasMany 和 belongsTo 关系。其他也是可序列化的域
所以请 cud 任何人告诉我使这个域可搜索的正确方法
首先,您不需要那里的瞬态定义。这就是您开始所需的全部内容:
static searchable = true
您可以通过转到“http://localhost:8080/YOUR-APP-NAME-HERE/searchable”进行测试。如果您实际上添加了任何产品,则可以仅使用该 URL 搜索域中的简单字段之一(例如字符串 productName 字段)。
一旦您确定它正在工作,您可以将搜索字段放在您的表单上,并向您的产品控制器添加一些自定义方法以使用搜索功能:
//search form
<form controller="product" action="searchForProducts" >
<g:textField name="query" />
<input type="submit" value="search" />
</form>
//ProductController
def searchForProducts = {
if(params.query) {
def products = Product.search(params.query).results
return [productInstanceList: products]
}
}
就您的 hasMany 引用而言,只要它们也是可搜索的,您就应该能够将它们包含在搜索中。我还没有这样做,所以我对细节并不积极。