Example of SqlDataProvider usage in Yii2 and yiidataprovider usage
This example describes the usage of SqlDataProvider in yii2. We will share this with you for your reference. The details are as follows:
Method 1:
$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;
Second:
<?= 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'], ],]); ?>