【发布时间】:2015-01-15 14:51:40
【问题描述】:
我是 Yii 的新手。我在 Yii 中有以下代码。
public function actionExport($typeid=0, $locationid=0, $sidx='date_input', $sord='desc',
$kategori='', $to = 'xls'){
// inisialisasi criteria query
$criteria = new CDbCriteria();
$criteria->order = "$sidx $sord";
// filter lokasi
if (is_numeric($locationid) && $locationid !== 0)
{
$criteria->with = array('data'=>array(
'condition'=>'data.locationid=:locationid',
'params'=>array(':locationid'=>$locationid)
));
} else {
if (is_numeric($typeid) && $typeid !== 0)
{
$criteria->with = array('data.location'=>array(
'with'=>array(
'type'=>array(
'condition'=>'type.typeid=:typeid',
'params'=>array(':typeid'=>$typeid)
)
)
));
} else {
$criteria->with = array('data.location'=>array(
'with'=>array(
'type'=>array(
'condition'=>'type.type_desc=:type_desc',
'params'=>array(':type_desc'=>$kategori)
)
)
));
}
}
// filter range tanggal
if (isset($_REQUEST['startdate'], $_REQUEST['enddate']))
{
$startdate = $_REQUEST['startdate'];
$enddate = $_REQUEST['enddate'];
$criteria->condition = 'date_input <= :enddate AND date_input >= :startdate';
$criteria->params = array(':startdate'=>$startdate, ':enddate'=>$enddate);
}
$dataProvider = new CActiveDataProvider('InputData', array(
'criteria'=>$criteria
));
echo $dataProvider->getTotalItemCount(); // this is about 5623
if($to == 'xls'){
$this->_toXls($dataProvider->getData());
}else{
}
}
这一行 echo $dataProvider->getTotalItemCount() 打印 5623,但在循环 this->_toXls() 中打印在 excel 文件中的行只有 10 行。当我使用print_r($dataProvider->getData()) 调试数据提供者时,结果相同,它是 10 项。
我写代码有错吗?
【问题讨论】: