Я хочу создать разбивку на страницы на моей странице без вида сетки или модели. Это мой код контроллера:
$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, )); ?>
Но когда я запустил это сообщение об ошибке show
"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».