Maybe you are looking for something like this:
add in to your model
public static function getYearsList()
{
$years = (new Query())->select('DISTINCT YEAR(`birthday`) as years')->from('{{%yourTable}}')->column();
return array_combine($years, $years);
}
and then in gridview
[
'attribute' => 'birthday',
'filter' => YourModel::getYearsList(),
]
And then in your search model add andFilterWhere()
to compare birthday with year. It can look like this:
$query->andFilterWhere('YEAR(`birthday`)' => $year);
3
solved Yii2 GridView filter date by year