本文实例讲述了Yii2中SqlDataProvider用法。分享给大家供大家参考,具体如下:
第一种方法:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
|
$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 ; |
第二种:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
<?= GridView::widget([ 'dataProvider' => $dataProvider , 'columns' => [ [ 'class' => 'yii\grid\SerialColumn' ], [ 'label' => "Name" , 'attribute' => 'tbl_column_name' , 'value' => function ( $data ){ return $data [ "tbl_column_name" ]; } ], 'title' , 'author' , 'created_on' , [ 'class' => 'yii\grid\ActionColumn' ], ], ]); ?> |
希望本文所述对大家基于Yii框架的PHP程序设计有所帮助。