Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/285.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/159.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Yii2网格视图的默认过滤器状态_Yii2_Yii2 Advanced App - Fatal编程技术网

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

Yii2网格视图的默认过滤器状态,yii2,yii2-advanced-app,Yii2,Yii2 Advanced App,这是一个我不得不问的问题,我觉得很愚蠢,但我就是不明白。我正在构建一个用于管理社区节日志愿者的web应用程序(这是我自己的志愿者承诺)。该应用程序具有application(如在职务应用程序中)和Commitment模型,这两个模型都具有year属性,该属性在数据库中定义为year(4),因此没有月份或日期信息。我有相应的ApplicationSearch模型、ApplicationController、CommitmentSearch模型和CommitmentController,它们目前与G

这是一个我不得不问的问题,我觉得很愚蠢,但我就是不明白。我正在构建一个用于管理社区节日志愿者的web应用程序(这是我自己的志愿者承诺)。该应用程序具有
application
(如在职务应用程序中)和
Commitment
模型,这两个模型都具有
year
属性,该属性在数据库中定义为
year(4)
,因此没有月份或日期信息。我有相应的
ApplicationSearch
模型、
ApplicationController
CommitmentSearch
模型和
CommitmentController
,它们目前与Gii生成的视图一样


在我的应用程序后端中,
ActionIndex
上的
GridView
的默认状态应该是只显示当前年份的记录。

一种方法是将实际年份分配给数据提供程序

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

      }

      ......

如果没有模型结构和如何构建gridview的信息,真的很难帮助您。它目前由Gii生成,包括两个模型上的视图。是的。。。但是我们不知道数据库表的结构是什么。例如-
。是类似于2017年还是更类似于2017-08-03年?年属性在数据库中定义为
year(4)
,也类似于
2017年
。我不确定这是否足够,但在
*搜索
模型中,将
year
字段设置为
日期('Y')
并确保在
rules()
中添加了
year
,并且在
search()
方法中有类似于
$query->andFilterWhere(['year'=>$this->year])
的内容基于Bizley的上述评论。多亏了你们,这是错误的。使用此查询条件,您无法筛选与当前状态不同年份的gridview。默认状态!=固定的state@Bizley对的答案已更新..检查是否未设置年份的值