网格视图的 Yii2 默认过滤器状态
Yii2 default filter state for grid view
我觉得不得不问这个问题真的很愚蠢,但我只是没有理会它。我正在构建一个用于管理社区节日志愿者的 Web 应用程序(这是我自己的志愿者承诺)。该应用程序有 Application
(如工作申请)和 Commitment
模型,它们都有一个 year
属性,该属性在数据库中定义为 year(4)
,因此没有月份或日信息。我有相应的 ApplicationSearch
模型、ApplicationController
、CommitmentSearch
模型和 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())' );
}
......
我觉得不得不问这个问题真的很愚蠢,但我只是没有理会它。我正在构建一个用于管理社区节日志愿者的 Web 应用程序(这是我自己的志愿者承诺)。该应用程序有 Application
(如工作申请)和 Commitment
模型,它们都有一个 year
属性,该属性在数据库中定义为 year(4)
,因此没有月份或日信息。我有相应的 ApplicationSearch
模型、ApplicationController
、CommitmentSearch
模型和 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())' );
}
......