Welcome toVigges Developer Community-Open, Learning,Share
Welcome To Ask or Share your Answers For Others


0 votes
in Technique[技术] by (71.8m points)

Yii2 GridView filter date by year

This question is simple, but in Yii2 I cannot find the solution.

Given a birthday field, how is it possible in gridview to filter by year? Typically in an index gridview.

See Question&Answers more detail:os

Welcome To Ask or Share your Answers For Others

1 Answer

0 votes
by (71.8m points)

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

Welcome to Vigges Developer Community for programmer and developer-Open, Learning and Share