2017-08-03 3 views
0

これは私が尋ねることに本当に不愉快だと感じているが、私は単にその周りに頭を浮かべていない。コミュニティフェスティバルでボランティアを管理するためのWebアプリケーションを構築しています(&私自身のボランティアコミットメントです)。アプリケーションにはApplication(ジョブアプリケーションの場合と同様)& Commitmentモデルがあり、どちらもyear属性がデータベースにyear(4)と定義されているため、月または日の情報はありません。対応するApplicationSearchモデル、ApplicationControllerCommitmentSearchモデル、& CommitmentControllerがあります。これらは現在Giiで生成されているものと同様です。Yii2グリッドビューのデフォルトフィルタ状態

私のアプリケーションバックエンドでは、これらの両方のモデルのGridViewのデフォルト状態はActionIndexで、今年のレコードのみを表示する必要があります。

+0

の割り当てに基づいています。 – Bizley

+0

現在のところ、両方のモデルのビューを含む、Giiによって生成されたものです。 – Pedro

+0

さて、はい...しかし、私たちはデータベーステーブルの構造が分かりません。例えば、 'year'のように。 '2017-08-03'のようなものなのですか? – Bizley

答えて

1

方法は、モデルの構造と、この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())' ); 

     } 

     ...... 
+0

上記のBizleyのコメントに基づいて、$ searchModel-> year = date( 'Y');を設定したのと同じです。あなたのおかげで両方。 – Pedro

+0

これは間違っています。このクエリ条件では、現在と異なる年のグリッドビューをフィルタリングできません。 – Bizley

+0

OPリクエストです.. – scaisEdge

関連する問題