2017-08-01 16 views
1
$searchModel = new CustomersSearch(); 
$dataProvider = $searchModel->search(Yii::$app->request->queryParams); 

のフィルタモデルに影響を与えることなく、indexアクションのsearchModelにクエリのparamsを追加する方法を、私たちはsearchModelとインデックスのアクションのためのdataProviderが設けられています。しかし、特定の基準を満たすように返されたデータをカスタマイズするには、難題があります。これは私がやったことです:Yii2:デフォルトでは、GridViewのYii2で

$searchModel = new CustomersSearch(); 
$dataProvider = $searchModel->search(Yii::$app->request->queryParams); 
$dataProvider->query->where('customers.status = 10'); 

これは正常に動作しますが、問題は、それが提供された検索フィルタから何かを検索すると、GridViewコントロールによって返されたデータでは動作しないことにGridViewなどのfilterModelを妨害しています。 GridViewのfilterModelに影響を与えずにsearchModelに条件を追加できる場所はありますか?

答えて

2

私が正しく理解しているのであれば、ユーザはGridViewフィルタを使用できるようにしたいが、得られた結果はcustomers.status = 10のものに限定したい。そうですか?

あなたが上方に設けられただけで、それは同じようandWhereを使用追加するには、クエリ条件をリセットしない場合:はい

$dataProvider->query->andWhere('customers.status = 10'); 
+1

、あなたは私の質問の権利を得ました。私はそれがこの単純だとは信じられません。あなたのソリューションをテストし、それがどうなるかを見てみましょう。ありがとう。 – japheth

+1

すばらしい。どうもありがとうございます。 – japheth

関連する問題