Cactivedataprovider с нумерацией страниц - PullRequest
0 голосов
/ 29 июня 2019

Во-первых, здесь у нас есть больше записей в таблице, поэтому мы хотим добавить нумерацию страниц, и код выглядит так:

    public function actionCompany()
        {
              $model = new CompanyProfile();
              $criteria1 = new CDbCriteria();
            $criteria1->addCondition('cmpny_profile_id=-1');
            $dataProvidernew= new CActiveDataProvider('CompanyProfile',array(
                'criteria'=>$criteria1,'pagination'=>array('pageSize'=>10),
        ));
       if(isset($_POST['CompanyProfile'])){
                $criteria = new CDbCriteria();
                $model->cmpny_profile_name = $_POST['CompanyProfile']['cmpny_profile_name'];
                if(!empty($model->cmpny_profile_name))
                {
        $criteria->addSearchCondition('cmpny_profile_name', $model->cmpny_profile_name);

                }
      $dataProvidernew= new CActiveDataProvider('CompanyProfile',array(
                    'criteria'=>$criteria,'pagination'=>array('pageSize'=>10),

                ));
            }
        $this->render('company',array('model'=>$model,'dataProvider'=>$dataProvidernew));
    }

Теперь, при загрузке страницы, никакие записи не будут отображаться, и у нас есть форма для отправки на страницу. Итак, при отправке формы код отображает первые 10 записей в порядке. Когда мы нажимаем на вторую ссылку нумерации страниц, никакие записи не будут отображаться.
Мой вопрос заключается в том, что при нажатии на вторую ссылку нумерации страниц форма отправляется, но значение $model->cmpny_profile_name пусто, поэтому код должен отображать 10 записей, но не отображать одну, почему? Пожалуйста, дайте нам знать причину. Спасибо заранее.

1 Ответ

0 голосов
/ 29 июня 2019

Во-первых, Cactivedataprovider с нумерацией страниц не загружает страницу, нумерация страниц работает с ajax. Поэтому, если вы повторяете код в условии if, вы можете проверить через ajax, что данные не будут отображаться. Так что при нажатии на вторую ссылку нумерации страниц, та же страница сДля пагинации будет загружен ajax, и будет применено условие cmpny_profile_id=-1, а форма не отправлена, поэтому данные не будут отображаться.

...