Skip to content

simplesi/QueryBuilderParser

 
 

Repository files navigation

QueryBuilderParser

Status Label Status Value
Build Build Status
Insights SensioLabsInsight
Code Climate Code Climate
Test Coverage Test Coverage

QueryBuilderParser is designed mainly to be used inside Laravel projects, however it can be used outside Laravel projects by using Illuminate/Database.

A simple to use query builder for the jQuery QueryBuilder plugin.

    use timgws\QueryBuilderParser;

    $table = DB::table('table_of_data_to_interegate');
    $qbp = new QueryBuilderParser(
        array( 'row1', 'row2', 'row3' )
    );

    $query = $qbp->parse($input['querybuilder'], $table);

    $rows = $query->get();
    return Response::JSON($rows);

Mixed with Datatables, this makes for some true awesome.

    use timgws\QueryBuilderParser;
    
    class AdminUserController {
        function displayUserDatatable() {
            /* builder is POST'd by the datatable */
            $queryBuilderJSON = Input::get('builder');
            
            $show_columns = array('id', 'username', 'email_address');
            
            $query = new QueryBuilderParser($show_columns);
            
            /** Illuminate/Database/Query/Builder $queryBuilder **/
            $queryBuilder = $query->parse(DB::table('users'));
            
            return Datatable::query($queryBuilder)
                ->showColumns($show_columns)
                ->orderColumns($show_columns)
                ->searchColumns($show_columns) 
                ->make()
        }
    }

Known issues

Some complex queries with QueryBuilder 2.1.0 are failing.

Reporting Issues

I use this code in a number of my projects, so if you do find an issue, please feel free to report it with GitHub's bug tracker for this project.

Alternatively, fork the project and make a pull request :)

About

A simple to use query builder for the jQuery QueryBuilder plugin for use with Laravel.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • PHP 100.0%