2017-08-03 75 views
0

这是一个我觉得非常愚蠢的问题,但我根本没有想到它。我正在建立一个Web应用程序,用于在社区节日中管理志愿者(&这是我自己的志愿者承诺)。该应用程序有Application(如在工作申请中)& Commitment模型,它们都具有在数据库中定义为year(4)year属性,因此没有月份或日期信息。我有相应的ApplicationSearch模型,ApplicationController,CommitmentSearch模型,& CommitmentController哪些是目前正如由Gii生成,以及意见。Yii2网格视图的默认过滤器状态

在我的应用程序后端,ActionIndexGridView的默认状态为这两个模型应该只显示当前年份的记录。

+0

真的很难帮你没有模型结构和信息关于这个gridview的是如何构建的。 – Bizley

+0

它目前全部由Gii生成,包括两种型号的视图。 – Pedro

+0

嗯,是的......但我们不知道数据库表的结构是什么。例如 - “年”。是否像'2017'或更像'2017-08-03'? – Bizley

回答

1

一种方法是基于分配的实际年到您的数据提供程序

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

     } 

     ...... 
+0

这样做,就像设置'$ searchModel-> year = date('Y');'根据上面的Bizley的评论。感谢你们两位。 – Pedro

+0

这是错误的。使用此查询条件,您不能过滤gridview与当前不同的一年。 – Bizley

+0

是OP请求.. – scaisEdge