本文实例讲述了Yii2中SqlDataProvider用法。分享给大家供大家参考,具体如下:
第一种方法:
$totalCount = Yii::$app->db->createCommand('SELECT COUNT(*) FROM posts WHERE publish=:publish', [':publish' => 1]) ->queryScalar(); $dataProvider = new SqlDataProvider([ 'sql' => 'SELECT * FROM posts WHERE publish=:publish', 'params' => [':publish' => 1], 'totalCount' => $totalCount, //'sort' =>false, to remove the table header sorting 'sort' => [ 'attributes' => [ 'title' => [ 'asc' => ['title' => SORT_ASC], 'desc' => ['title' => SORT_DESC], 'default' => SORT_DESC, 'label' => 'Post Title', ], 'author' => [ 'asc' => ['author' => SORT_ASC], 'desc' => ['author' => SORT_DESC], 'default' => SORT_DESC, 'label' => 'Name', ], 'created_on' ], ], 'pagination' => [ 'pageSize' => 10, ], ]); return $dataProvider;
第二种:
<?= GridView::widget([ 'dataProvider' => $dataProvider, 'columns' => [ ['class' => 'yiigridSerialColumn'], [ 'label' =>"Name", 'attribute' => 'tbl_column_name', 'value'=>function($data){ return $data["tbl_column_name"]; } ], 'title', 'author', 'created_on', ['class' => 'yiigridActionColumn'], ], ]); ?>
希望本文所述对大家基于Yii框架的PHP程序设计有所帮助。