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