【问题标题】:Cpagination and search issue in yiiyii中的分页和搜索问题
【发布时间】:2013-10-23 15:56:49
【问题描述】:

这是 Cpagination 操作,例如,当我进行具有 3 个结果的搜索时,它给了我 3 个页面,每个页面都有相同的 3 个三个结果,所以这里有什么问题:

 $criteria = new CDbCriteria();
            $models = Files::model();
            if (isset($_GET['file'])) {
                $q = $_GET['file'];
                $criteria->compare('fileName', $q, true, 'OR');
                $criteria->compare('tags', $q, true, 'OR');
                $count=Files::model()->count($criteria);
                $pages=new CPagination($count);

                // results per page
                $pages->pageSize=1;
               // $pages->applyLimit($criteria);

            }

            $dataProvider = new CActiveDataProvider("Files", array('criteria' => $criteria));
            $this->render('result', array(
                'dataProvider'=>$dataProvider,
                'pages'=>$pages,
                    ));

这是视图:

<?php


$this->widget('zii.widgets.CListView', array(
    'dataProvider' => $dataProvider,
    'itemView' => '_view',
));
$this->widget('CLinkPager', array(
    'pages' => $pages,
)) ?>

【问题讨论】:

    标签: php search yii pagination


    【解决方案1】:

    您在代码中使用了网格物体。此外,您的 $pages-&gt;pageSize 将仅在 isset($_GET['file']) 时运行。 if 语句只能用于添加条件参数。

    您必须决定是只使用Files::model() 还是CActiveDataProvider("Files")。如果你会使用CActiveDataProvider:

    $criteria = new CDbCriteria();
    
    if ( isset($_GET['file']) ) {
        $criteria->compare('fileName', $_GET['file'], true, 'OR');
        $criteria->compare('tags', $_GET['file'], true, 'OR');
    }
    
    $dataProvider = new CActiveDataProvider("Files", array(
        'criteria' => $criteria,
        'countCriteria' => $criteria,
        'pagination'=>array(
            // results per page
            'pageSize'=>1,
        ),
    ));
    
    $this->render('result', array(
        'dataProvider' => $dataProvider,
        'pages' => $dataProvider->pagination,
    ));
    

    另外,我看不到你的view。也许你那里也有一些错误的分页代码。

    【讨论】:

    • countCriteria 未定义,我想使用 Files::model(),我将编辑问题并向您展示视图
    • 糟糕。 countCriteria for CActiveDataProvider 在 Yii 1.1.14 中引入。你用的是什么版本?尝试完全删除'countCriteria' =&gt; $criteria,
    • 是的,我删除了它并从视图中删除了分页小部件,现在可以正常工作了,谢谢 :)
    猜你喜欢
    • 1970-01-01
    • 2014-02-13
    • 2011-08-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-11-06
    • 2019-11-25
    相关资源
    最近更新 更多