2016-12-19 5 views
0

私はYii2-advanced-appを使用しています。投稿メソッド&を使用して2つのパラメータを取る関数を書いています。結果は、ページ区切り付きのGridviewに表示されます。画面はこのようなものです - screen ref. 私はこれに直面してる問題がある - 私はページネーションバーの[次ページ」ボタンをクリックすると、それは、&再び機能をロードする代わりに、再び私に空白のフォームを提供します2番目のページを表示します。それはこのようなものです - empty form with no resultsYii2:カスタム機能のページネーションの管理

My機能はこれです -

public function actionReportMisc() 
    { 
     $model = new BanksDetail(); 
     if($model->load(Yii::$app->request->post())) { 
      if($model->Process_ID != '' && $model->Bank_ID != '') { 
       if($model->Process_ID == 1) { 
        $searchModel = new BanksDetailSearch(); 
        $bank = Banks::find()->select('ID')->where(['Account_Number' => $model->Bank_ID])->one(); 
        if(count($bank) == 1) { 
         $queryParams = array_merge(array(),Yii::$app->request->getQueryParams()); 
         $queryParams["BanksDetailSearch"]["Bank_ID"] = $bank->ID; 
         $dataProvider = $searchModel->search($queryParams); 
         $dataProvider->pagination->pageSize = 3; 
         if(count($dataProvider) > 0) { 
          return $this->render('misc', ['model' => $model, 'searchModel' => $searchModel, 'dataProvider' => $dataProvider]); 
         } 
        } else { 
         throw new \yii\web\HttpException(404, 'The selected Account does not exist. Please ensure that you have entered right account no. for Bank/Cashbox.'); 
        } 
       } else if($model->Process_ID == 2) { 
        $searchModel = new CashboxesDetailSearch(); 
        $cbx = Cashboxes::find()->select('ID')->where(['Account_Code' => $model->Bank_ID])->one(); 
        if(count($cbx) == 1) { 
         $queryParams = array_merge(array(),Yii::$app->request->getQueryParams()); 
         $queryParams["CashboxesDetailSearch"]["CashBoxes_ID"] = $cbx->ID; 
         $dataProvider = $searchModel->search($queryParams); 
         if(count($dataProvider) > 0) { 
          return $this->render('misc', ['model' => $model, 'searchModel' => $searchModel, 'dataProvider' => $dataProvider]); 
         } 
        } else { 
         throw new \yii\web\HttpException(404, 'The selected Account does not exist. Please ensure that you have entered right account no. for Bank/Cashbox.'); 
        } 
       } 
      } 
     } else { 
       return $this->render('misc', ['model' => $model]); 
     } 
    } 

私は「次ページボタン」をクリックすると、機能が再び空にFOMを返す&空の値を持つフォームを初期化し、理解しています。しかし、それを達成するための示唆やそれを簡単に行うための別の方法が必要です。前もって感謝します。

+0

なぜ最初に正確にカスタム関数を使用していますか?デフォルトのバージョンは必要なものと一致していませんか? :) –

+0

私の場合、ユーザーからテーブル名を取得する必要があります。つまり、銀行かキャッシュボックスのいずれかになります。私はグリッドを表示する必要があります。選択されたアカウント(銀行/キャッシュボックス)に入力されました。もしあれば私が使うことのできる方法を教えてください。 –

+0

ええ、申し訳ありませんが、私は問題が何であるか分かりません:/ –

答えて

0

私はこの問題を解決しました。問題は、post()の代わりにget()を使うことです。私のシナリオには適していました。なぜなら、ページ区切りのたびにこれらのパラメータを取得するからです。あなたの親切な助けをありがとう。

関連する問題