网格视图的 Yii2 默认过滤器状态

Yii2 default filter state for grid view

我觉得不得不问这个问题真的很愚蠢,但我只是没有理会它。我正在构建一个用于管理社区节日志愿者的 Web 应用程序(这是我自己的志愿者承诺)。该应用程序有 Application(如工作申请)和 Commitment 模型,它们都有一个 year 属性,该属性在数据库中定义为 year(4),因此没有月份或日信息。我有相应的 ApplicationSearch 模型、ApplicationControllerCommitmentSearch 模型和 CommitmentController,它们目前与 Gii 生成的一样,视图也是如此。

在我的应用程序后端,ActionIndex 上的 GridView 对于这两个模型的默认状态应该是仅显示当年的记录。

一种方法是将实际年份分配给您的 dataProvider

 public function actionYourAction()
  {
      $searchModel = new YourModelSearch(); 

      $queryParams = Yii::$app->request->queryParams;

      $dataProvider = $searchModel->search($queryParams);
      if (!isset($queryParams['YourModelSearch']['your_year_column']))      {
         $dataProvider->query->
              andWhere('your_year_column =  YEAR(curdate())'  );

      }

      ......