银条纹。在 ModelAdmin 中按日期范围搜索

2024-01-10

我的数据对象中有日期属性。

如何在 ModelAdmin 中按日期范围进行搜索?

例如:“搜索日期大于 2007-13-01 且小于 2007-17-01 的所有项目”
或“搜索日期在 2007-13-01 和 2007-17-01 之间的所有项目”

目前我只能使用 GreaterTranFilter 或 LessThanFilter 进行搜索,但不能同时使用两者。

class MyObject extends DataObject {
    private static $db = [
        "Date" => "Date",
    ];
    private static $summary_fields = [
        "Date" => "Date",
    ];

    private static $searchable_fields = [
        "Date" => [
            "field" => "DateField",
            "filter" => "GreaterThanFilter",
            "title" => 'Date from ...'
        ],
    ];
}

另外,搜索字段必须使用日历(日期选择器)

DateField:
  default_config:
    showcalendar: true

您能举例说明如何按日期范围搜索吗?


有一个WithinRangeFilter,但如果您仅使用配置,它不会让您走得太远。这是您真正需要按程序实施的事情。

通过重载添加范围过滤器getSearchContext(),然后超载getList()并检查q请求日期范围的参数,并将它们应用到列表中。

public function getSearchContext()
{
    $context = parent::getSearchContext();
    $context->getFields()->push(DateField::create('q[Start]','Start'));
    $context->getFields()->push(DateField::create('q[End]','End'));

    return $context;
}

public function getList()
{
    $list = parent::getList();
    $params = $this->getRequest()->requestVar('q');

    $filters = [];
    if(isset($params['Start'])) {
        $filters['Date:LessThanOrEqual'] = $params['Start'];
    }
    if(isset($params['End'])) {
        $filters['Date:GreaterThanOrEqual'] = $params['End'];
    }

    return $list->filter($filters);
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

银条纹。在 ModelAdmin 中按日期范围搜索 的相关文章

  • MongoDB - 使用全文搜索搜索单词和短语时的逻辑 OR

    我之前问过一个相关问题 根据发帖者的建议 创建了这个新问题作为后续问题 MongoDB 全文搜索 匹配单词和精确短语 https stackoverflow com questions 28368883 mongodb full text
  • 列表视图过滤器 Android

    我在android中创建了一个列表视图 我想在列表上方添加编辑文本 当用户输入文本时 列表将根据用户输入进行过滤 谁能告诉我是否有办法在android中过滤列表适配器 在列表视图的 xml 布局文件中添加一个 EditText 在你的活动
  • 让 Google 搜索回归 Python

    我正在尝试从 Google 搜索中获取前 20 个结果 当我使用urllib2 urlopen 它给了我一个错误并说我被禁止了 我听说这与伪造用户代理字符串有关 但我几乎没有 urllib2 经验 如果有人可以提供帮助 我将非常感激 谢谢
  • iOS 使用查询打开 YouTube 应用程序(url 方案)

    是否有 URL 方案可以使用指定的搜索查询打开 YouTube iOS 应用程序 I tried NSString stringURL http www youtube com results search query foo NSURL
  • LdapConnection SearchRequest 抛出对象不存在错误

    我正在尝试查询 LDAP 服务器以查找 LDAP 用户并将其导入到我的系统中 但是 当我尝试执行此操作时 请求会抛出DirectoryOperationException 说The object does not exist ldapCon
  • 冷融合和分页

    首先 我对 ColdFusion 很陌生 但学得很快 因此 我正在尝试构建一个大型数据库 最初每页显示 25 行的所有结果 并有一个下一个 上一个链接来浏览页面 这一切都工作正常 但是当我执行搜索时 当新结果显示大约几页时 分页链接不起作用
  • Android - 使用 Android 支持库时无法在 SearchWidget 中找到 TextView

    我使用以下代码片段在 SearchView 小部件中查找 TextView int autoCompleteTextViewID getResources getIdentifier android id search src text n
  • 更改 SOLR 默认连接

    我正在使用嵌入 SOLR 的应用程序 SOLR 在 Tomcat 的 webapp 区域中像一场战争一样运行 是否有 SOLR 配置允许我切换搜索的默认 SOLR 行为以假定 AND 而不是 OR 作为连接运算符 在您的模式文件中添加 或修
  • 如何使用 Delphi XE2 IDE 搜索来搜索

    我一直使用搜索来在 庞大的 应用程序源中查找内容 因此搜索有效性对我来说非常重要 目前在 Delphi XE2 IDE 中我喜欢使用 在文件中查找 包括子目录 没有其他花哨的东西 只是一个文本关键字 这工作正常 但我真正想做的是扩展我现在正
  • 检查字符串是否多次包含子字符串[重复]

    这个问题在这里已经有答案了 要搜索字符串内的子字符串 我可以使用contains 功能 但是如何检查一个字符串是否多次包含子字符串呢 优化这一点 对我来说 知道有多个结果而不是有多少就足够了 尝试利用快速IndexOf and LastIn
  • 如何在我的网站中创建全局搜索[关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 如何在我的网站中创建全局搜索 该网站是内部网站 无法在网上使用 我无法使用 Google 搜索来实现此目的 我的信息全部存储在不同的
  • 通过电子邮件搜索将 Excel 2003 中的数据行复制并粘贴到不同的工作表

    在任何人发表任何言论之前 我已经浏览了几篇与此类似想法相关的帖子 采用不同的搜索条件 然后对其进行修改 但我无法让宏正常工作 这可能是由于我缺乏编程知识 我想做的就是 search的电子邮件地址工作表1如果找到 则将整行复制到下一个空闲行工
  • 从中间部分匹配完成建议elasticsearch

    我有一个名为搜索建议具有以下 search suggest type completion analyzer simple payloads true preserve separators false preserve position
  • Lucene 评分:在什么情况下使用 queryNorm?

    我对 lucene 的评分策略有点困惑 我知道Lucene的评分公式是这样的 score q d coord q d x queryNorm q X SUM
  • java:在目录和子目录中根据文件名搜索文件

    我需要根据目录树中的名称查找文件 然后显示该文件的路径 我发现了类似的东西 但它根据扩展名进行搜索 谁能帮助我如何根据我的需要重新编写这段代码 谢谢 public class filesFinder public static void m
  • 如何使用KDTrees实现最近邻搜索?

    所以 我正在实施一个KD Tree http en wikipedia org wiki Kd tree进行最近邻搜索 我已经构建了树部分 但我认为我没有完全理解搜索部分 关于遍历树来搜索邻居 维基百科文章如下 Starting with
  • 可选的OptionsetField是SilverStripe 3.2

    在 SilverStripe 3 1 中 我使用了一些带有 OptionssetFields 的表单 这些表单是可选的 因此不需要做出选择 这运作良好 但自从我更新到 SilverStripe 3 2 0 后 该表单不再接受这一点 提交时
  • Erlang Mnesia 中的分页搜索

    例如 给定记录 record item id time status 我想搜索 1000 到 1100 个项目 按时间和顺序排序status lt lt finished gt gt 有什么建议么 这取决于您的查询是什么样的 如果您需要按许
  • C 中的三元搜索

    我想在 C 中对整数进行三元搜索 我已经尝试过 但它对于特定情况效果不佳 请帮我删除以下程序中的错误 我的尝试 include
  • 在python中删除链表中的节点

    删除链表中的节点 这个实现有什么问题 def delete self val tmp self head prev None while tmp if val tmp data self size 1 if prev None self h

随机推荐