[英]Create pagination in yii framework
我想在沒有網格視圖或模型的頁面上創建分頁。 這是我的控制器代碼:
$providers = Yii::app()->db->createCommand($query)->queryAll();
$count = Yii::app()->db->createCommand($query)->queryAll();
$dataProvider = new CSqlDataProvider($query, array(
'totalItemCount' => $count,
'pagination' => array(
'pageSize' => 10,
),
));
我的查看代碼是:
<?php $this->widget('zii.widgets.grid.CGridView', array(
'id'=>'students-grid',
'dataProvider'=> $dataProvider,
)); ?>
但是當我運行它時,它顯示錯誤消息
"Array to string conversion"
我嘗試過的第二個選擇是:-
$criteria = new CDbCriteria();
$count = Yii::app()->db->createCommand($query)->queryAll();
$pages = new CPagination($count);
// results per page
$pages->pageSize=10;
$pages->applyLimit($criteria);
//$models=Article::model()->findAll($criteria);
但是我不知道如何使用此代碼,因為這一次我沒有模型。在模型的地方我可以使用什么?
請按照下面的URL。 在這里,您可以找到如何進行自定義分頁。 http://www.bsourcecode.com/yiiframework2/custom-pagination-in-yiiframework-2-0/
嘗試這個。 希望這對您有所幫助。
//controller
$count = Yii::app()
->db //your count of records
->createCommand('
select COUNT(*) AS total
from providers p
left join providers_facilities_services fs on fs.provider_guid = p.provider_guid
left join lkup_facilitytypes l on l.lkup_facilitytype_id = fs.lkuptype_id and fs.type='F' left join providers_media m on m.provider_guid = p.provider_guid
left join providers_contacts as comp on comp.provider_guid= p.provider_guid where p.provider_class='F' and comp.contact_type='U' and fs.type='F' and p.deleted = 'N' and fs.lkuptype_id =5 HAVING distance <= 20000
')
->queryColumn();
$dataProvider = new CSqlDataProvider($query, array(
'totalItemCount' => $count[0],
'pagination' => array(
'pageSize' => 10,
),
));
//view
<?php $this->widget('zii.widgets.grid.CGridView', array(
'id' => 'students-grid',
'dataProvider'=> $dataProvider,
)); ?>
確保您的查詢輸出包含“ id”列。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.