2017-08-03 72 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