Yii2 GridView 按年过滤日期

Yii2 GridView filter date by year

这道题很简单,但是在Yii2中找不到解法

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

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

添加到您的模型中

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);