分页的Cactivedataprovider

时间:2019-06-29 06:02:04

标签: php yii pagination

首先,这里我们在表中有更多记录,因此我们希望在页面中添加分页,并且代码如下所示

    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 :(得分:0)

首先,具有分页功能的Cactivedataprovider无法加载页面,分页功能可与ajax一起使用,因此如果在if condition中回显代码,则可以检查ajax不会显示任何数据。分页将使用ajax加载,并且将应用cmpny_profile_id=-1条件,并且尚未提交任何表单,因此不会显示任何数据。