首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Sonata-Admin全局搜索中搜索哪些列?

在Sonata-Admin全局搜索中搜索哪些列?
EN

Stack Overflow用户
提问于 2014-09-18 09:34:33
回答 1查看 1.6K关注 0票数 5

Sonata中的全局搜索选项搜索与其关联的所有(doctrine2)实体。

我想弄清楚的是如何配置全局搜索所搜索的列。在我的客户网站上,它似乎是搜索所有的VARCHAR字段(原则类型:字符串),而不是文本字段(原则类型:文本)。

有谁知道这是为什么,以及如何改变它?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-09-18 11:55:07

根据sonata的文档,他们提到全局搜索模块将搜索所有可见的管理员,即show_in_dashboard设置为true,并且只在配置的admin的configureDatagridFilters()函数中搜索,因此添加到admin类的$datagridMapper对象的字段将在Sonata的全局搜索中搜索。

例如,您有新闻管理,在configureListFields()中有3个字段

代码语言:javascript
复制
protected function configureListFields(ListMapper $listMapper)
{
    $listMapper
        ->addIdentifier('id')
        ->add('name')
        ->add('createdDate');
}

configureDatagridFilters()中,只有name字段来筛选结果

代码语言:javascript
复制
protected function configureDatagridFilters(DatagridMapper $datagridMapper)
{
    $datagridMapper->add('name');
}

因此Sonata将只在新闻管理的name字段中搜索,因为您已经为此管理配置了一个筛选器,因此此筛选器也用于全局管理搜索,除name字段外,没有其他字段被搜索。

根据医生

“全局搜索”允许最终用户遍历仪表板中所有可见的管理员并搜索关键字。当前的实现非常简单,默认情况下,每个与字符串相关的过滤器都是可搜索的。

ADMIN BUNDLE ~ GLOBAL SEARCH

其他有关奏鸣曲全球搜索的信息如下

搜索遍历管理类,并在选项global_search设置为true的情况下查找筛选器。如果使用的是SonataDoctrineORMBundle,默认情况下,任何文本筛选器都将设置为true。

默认情况下,奏鸣曲查找字段描述,如果设置为string,则在全局搜索中自动包含字段,您也可以通过在$datagridMapperadd()中设置字段选项来强制在搜索中使用字段,如下所示

代码语言:javascript
复制
->add('name', null, array('global_search' => true), null, array()

Sonata Search

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25909103

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档