PHPackages                             defyma/yii2-datatable-manual-serverside - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. defyma/yii2-datatable-manual-serverside

ActiveHelper[Utility &amp; Helpers](/categories/utility)

defyma/yii2-datatable-manual-serverside
=======================================

Yii 2 Helper Manual Query Serverside for Data Table

1.3.3(6y ago)23821MITPHP

Since Sep 28Pushed 6y agoCompare

[ Source](https://github.com/defyma/yii2-helper-datatable-serverside)[ Packagist](https://packagist.org/packages/defyma/yii2-datatable-manual-serverside)[ Docs](http://www.defyma.com/)[ RSS](/packages/defyma-yii2-datatable-manual-serverside/feed)WikiDiscussions master Synced yesterday

READMEChangelog (1)Dependencies (1)Versions (4)Used By (0)

Yii2 Helper For Datatable Manual Serverside
===========================================

[](#yii2-helper-for-datatable-manual-serverside)

This helper only use SQL Query createCommand Not Activerecord!

Install With Composer
---------------------

[](#install-with-composer)

```
php composer.phar require defyma/yii2-datatable-manual-serverside:"v1.*.*"

```

Or Require it
-------------

[](#or-require-it)

```
"defyma/yii2-datatable-manual-serverside": "v1.*.*"

```

Example
-------

[](#example)

controller/site.php

```
    ...
    function actioGetdata()
    {
    	if(Yii::$app->request->isAjax)
        {
            $connection = Yii::$app->get('db');

            $sql = "
                SELECT
                    a.ID,
                    a.KATEGORI,
                    a.DESIGNATOR,
                    a.URAIAN,
                    a.DESIGNATOR_WBS,
                    a.URAIAN_WBS,
                    a.SATUAN_WBS,
                    sum(a.QTY) QTY,
                    a.SATUAN,
                    sum(a.nilai) NILAI
                FROM
                    EPROP_INDIKATIF_SPEND a
                WHERE
                    ( a.DESIGNATOR IS NOT NULL AND a.ID IS NOT NULL )

                    {{DATATABLE_SEARCH}}

                GROUP BY
                    KATEGORI,
                    DESIGNATOR,
                    URAIAN,
                    satuan,
                    a.DESIGNATOR_WBS,
                    a.URAIAN_WBS,
                    a.SATUAN_WBS
            ";

            $data = \defyma\helper\DatatableHelper::generate([
                'connection' => $connection,
                'db_type'    => 'oracle', //db_type : oracle or mysql, default is mysql
                'query'      => $sql,
                'columnSearch' => [ //Column For Search in Table
                    'a.KATEGORI',
                    'a.DESIGNATOR',
                    'a.URAIAN',
                    'a.SATUAN',
                    'QTY',
                    'NILAI',
                    'a.DESIGNATOR_WBS',
                    'a.URAIAN_WBS',
                    'a.SATUAN_WBS'
                ],
                'columnHeader' => [ //Make Sure 'columnHeader' Same as 'column_label' on View
                    'KATEGORI',
                    'DESIGNATOR',
                    'URAIAN',
                    'SATUAN',
                    [   //Custom Value
                        'column' => 'QTY',
                        'value'  => function($data) {
                            return \app\components\WebHelper::formatNumber($data['QTY']);
                        }
                    ],
                    'NILAI'
                ],
                'query_has_where' => true,
                // 'order'           => 'a.KATEGORI ASC',
                /*
                'action_column' => [           //action_column will generate in last of column
                    'template'  => '{delete} {edit} {some_other_button}',
                    'buttons'   => [
                        'delete' => function($data) {
                            return " This Button Delete ".$data['ID']."";
                        },
                        'edit'  => function($data) {
                            return " This Button Edit ".$data['ID']."";
                        },
                        'some_other_button' => function($data) {
                            return " Other Button ";
                        }
                    ]
                ]
                */
            ]);

            //if has footer callback
            $data['footer_total'] = 1000;

            // Return Json data table
    	    \Yii::$app->response->format = Response::FORMAT_JSON;
    	    return $data;
        }

    	return $this->render('show_data', []);
    }
    ...

```

---

views/site/show\_data.php

```
