Yii2 GridView按日期过滤

时间:2015-07-02 20:10:00

标签: gridview yii2 filtering

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

鉴于生日字段,gridview如何按年度过滤?通常在索引gridview中。

1 个答案:

答案 0 :(得分:8)

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

添加到您的模型

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