Я использую Yii2-advanced-app. Я пишу функцию, которая принимает 2 параметра, используя метод post & отображает результат в Gridview с разбивкой на страницы. Экран, как это - Проблема Я столкнулся с этим - При нажатии на кнопку «следующая страница» в постраничной баре, он загружает функцию снова & дает мне пустую форму еще раз, вместо того, чтобы 2-й страницы. Это так:
.Yii2: Управление разбиением на страницы в пользовательской функции
Моя функция это -
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. Но нужно предложить сделать это или сделать другой способ сделать это легко. Заранее спасибо.
Почему именно вы используете пользовательскую функцию в первую очередь? Не соответствует ли версия по умолчанию тем, что вам нужно? :) –
, потому что в моем случае я должен взять имя таблицы от пользователя, то есть это будет банк или касса. Я должен показать сетку, у меня нет учетной записи. введенный из выбранной учетной записи (банк/касса). Пожалуйста, скажите мне, как я могу использовать, если таковые имеются. –
Ehm, извините, я не уверен, в чем проблема: / –