【问题标题】:Yii2 GridView filter date by yearYii2 GridView 按年份过滤日期
【发布时间】:2015-09-20 12:39:17
【问题描述】:

这个问题很简单,但是在 Yii2 中我找不到答案。

给定一个生日字段,如何在 gridview 中按年份过滤?通常在索引网格视图中。

【问题讨论】:

  • 这就是我正在寻找的 :)))

标签: gridview yii2 filtering


【解决方案1】:

也许你正在寻找这样的东西:

添加到您的模型中

public static function getYearsList()
{
    $years = (new Query())->select('DISTINCT YEAR(`birthday`) as years')->from('{{%yourTable}}')->column();
    return array_combine($years, $years);
}

然后在gridview中

[
    'attribute' => 'birthday',
    'filter' => YourModel::getYearsList(),
]

然后在您的搜索模型中添加 andFilterWhere() 以将 生日 与年份进行比较。它可能看起来像这样:

$query->andFilterWhere('YEAR(`birthday`)' => $year);

【讨论】:

  • 感谢@Tony,不,这没有用。不是那么简单。我需要对 activeRecord 从数据库映射的日期字段进行真正的过滤。
  • 请您把您的问题说得更具体一些。因为回答者现在所拥有的只是关于您实际拥有什么以及您想要实现什么的假设。
  • 我在 mysql 数据库 dateTime 字段中基于 activeRecord 的模型中有 i 日期字段(生日)。在寻找一种方法在 gridview 中仅按年份过滤行,然后仅显示特定年份出生的人。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-03-10
  • 1970-01-01
  • 2019-09-21
  • 2021-11-01
  • 1970-01-01
相关资源
最近更新 更多