繁体   English   中英

在yii框架中创建分页

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM