【发布时间】:2012-01-20 02:12:36
【问题描述】:
我是 Yii 的初学者。我正在使用 views/myModel/index.php 页面列出 MySQL 表中的所有记录。默认情况下,每页显示的记录数为 10。如何更改?
【问题讨论】:
标签: php frameworks yii
我是 Yii 的初学者。我正在使用 views/myModel/index.php 页面列出 MySQL 表中的所有记录。默认情况下,每页显示的记录数为 10。如何更改?
【问题讨论】:
标签: php frameworks yii
首先模型文件夹不应包含 index.php。此文件夹包含与您的数据库表(CActiveRecords)和其他模型相关的所有类。
为了增加每页的记录数,您可以在 CGridView 或 CListView 中设置分页的页面大小。
public function actionIndex()
{
$dataProvider=new CActiveDataProvider('Invoice',
array(
'criteria'=>array(
'with'=>array('client'),
'condition'=>'businessId='. Yii::app()->userInfo->business,
),
'pagination'=>array('pageSize'=>20,),
)
);
$this->render('index',array(
'dataProvider'=>$dataProvider,
));
}
【讨论】:
'pagination'=>array('pageSize'=>8) 会做对吗?我试过了,它抛出异常 "CDbCriteria.pagenation" is not defined.
pagination 是 criteria 的属性,而实际上它是 CActiveDataProvider 本身的属性。
你也可以在你的代码中做这样的事情:
$criteria = new CDbCriteria;
$criteria->condition = "...";
$criteria->params = array();
$criteria->limit = 20;
$criteria->offset = 0;
$records = YourModel::model()->findAll($criteria);
limit 是每页显示的记录数,offset 是记录编号的开始位置,您可以将其用作页码。
【讨论】: