在sql比较复杂,用orm不好实现的情况下需要写原生sql还要用GirdView展现数据;
我的思路是这样的(已实现):
//Controller
$sql = 'select a.id,b.name,c.age from a,b,c where xxx';
$q = Yii::$app->db2->createCommand($sql)->queryAll();
$pages = new Pagination([
'totalCount'=>count($q),
]);
$list = Yii::$app->db2->createCommand($sql." limit ".$pages->limit." offset ".$pages->offset."")->queryAll();
$dataprovider = new ArrayDataProvider([
'allModels' => $list,
]);
return $this->render('circle',[
'dataprovider'=>$dataprovider,
'pages'=>$pages,
]);
//View
<?= GridView::widget([
'dataProvider'=>$dataprovider,
'pager'=>[
'options'=>['class'=>'hidden']
],
'columns'=>[
],
]) ?>
<?= LinkPager::widget([
'pagination'=>$pages,
]) ?>
虽然这样能实现我想要的结果,但是总感觉姿势不对.求大神指点
视图
为了避免你误人子弟我只好出手了
我也出手了,学习….
为什么我的分页出不来??
那么,我也给个优雅的回答
controller:
视图
又涨姿势了