Php yii中的注册和搜索问题
这是Cpagination操作,当我进行有3个结果的搜索时,例如,它给我3个页面,每个页面都有相同的3个结果,那么这里有什么问题:Php yii中的注册和搜索问题,php,search,yii,pagination,Php,Search,Yii,Pagination,这是Cpagination操作,当我进行有3个结果的搜索时,例如,它给我3个页面,每个页面都有相同的3个结果,那么这里有什么问题: $criteria = new CDbCriteria(); $models = Files::model(); if (isset($_GET['file'])) { $q = $_GET['file']; $criteria->compare(
$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,
)) ?>
您正在代码中使用网格化的东西。此外,您的
$pages->pageSize
仅在设置($\u GET['file'])
时运行if
语句只能用于添加条件参数
您必须决定是否只使用Files::model()
或cactivedaptaprovider(“文件”)
。如果要使用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,
));
另外,我看不到您的
视图
。可能您也有一些错误的分页代码。countCriteria未定义,我想使用Files::model(),我将编辑问题并向您显示视图对象CActiveDataProvider
的代码>计数标准。您使用的版本是什么?尝试删除'countCriteria'=>$criteria,
。我删除了它并从视图中删除了分页小部件,现在工作正常,谢谢:)