Yii2 GridView按日期过滤

sca*_*dge -4 gridview filtering yii2

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

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

Ton*_*ony 8

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

添加到您的模型中

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

然后在gridview中

[
    'attribute' => 'birthday',
    'filter' => YourModel::getYearsList(),
]
Run Code Online (Sandbox Code Playgroud)

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

$query->andFilterWhere('YEAR(`birthday`)' => $year);
Run Code Online (Sandbox Code Playgroud)