private function _prepareBuilder()
    {
        $builder = $this->_builder;
        $params = Input::get();

        /*
         * START filters
         */
        if ($this->renderFilterForm()) {
            foreach ($this->_columns as $columnData) {
                $column = new Column($columnData);
                if (!$column->searchable()) {
                    // Not a searchable column - skip it
                    continue;
                }

                if (!isset($params['resource_table_'.$column->index()])) {
                    // Searched string not found in GET query
                    continue;
                }

                $value = $params['resource_table_'.$column->index()];
                if (!$value || !is_string($value)) {
                    // Skip empty values
                    continue;
                }

                $value = $this->_prepareFilterValue($columnData, $value);
                switch ($column->searchType()) {

                    // Use simple WHERE = 'value' for selects
                    case 'select':
                        if (ResourceTable::ALL_SELECT_VALUES_KEY == $value) {
                            // Any value in select - skip it
                            continue;
                        }
                        $builder = $this->_addQueryCondition($builder, $column->queryConditionType(), $column->getDatabaseName(), '=', $value);
                        break;

                    // Use LIKE '%value%' for strings
                    case 'string':
                    default:
                        $builder = $this->_addQueryCondition($builder, $column->queryConditionType(), $column->getDatabaseName(), 'LIKE', '%'.$value.'%');
                        break;
                }
            }
        }
        /*
         * END filters
         */

        /*
         * START pagination
         */
        if ($this->_paginate) {
            if (isset($params['per_page']) && is_numeric($params['per_page']) && $params['per_page'] > 0) {
                // Get per_page from GET
                $this->_perPage = (int)$params['per_page'];
            }

            if (isset($params['page']) && is_numeric($params['page']) && $params['page'] > 1) {
                // Get page from GET
                $this->_page = (int)$params['page'];
            }
            $toSkip = ($this->_page * $this->_perPage) - $this->_perPage;

            // A the end set pagination
            $this->_totalItems = $this->_getCountForPagination($builder);
            $builder = $builder->skip($toSkip)->take($this->_perPage);
        }
        /*
         * END pagination
         */

        /*
         * START sort
         */
        if ($this->_validSort($params)) {
            // If sort configuration is valid then set it
            $this->sort($params['order_by'], strtoupper($params['order_dir']));
        }

        // Set sort configuration
        $sort = $this->getSort();
        if ($sort['index'] && $sort['dir']) {
            $builder = $builder->orderBy($sort['index'], $sort['dir']);
        }
        /*
         * END sort
         */

        $this->_builder = $builder;
    }
private function _prepareBuilder()
    {
        $builder = $this->_builder;
        $params = Input::get();

        /*
         * START filters
         */
        if ($this->renderFilterForm()) {
            foreach ($this->_columns as $columnData) {
                $column = new Column($columnData);
                if (!$column->searchable()) {
                    // Not a searchable column - skip it
                    continue;
                }

                if (!isset($params['resource_table_'.$column->index()])) {
                    // Searched string not found in GET query
                    continue;
                }

                $value = $params['resource_table_'.$column->index()];
                if (!$value || !is_string($value)) {
                    // Skip empty values
                    continue;
                }

                $value = $this->_prepareFilterValue($columnData, $value);
                switch ($column->searchType()) {

                    // Use simple WHERE = 'value' for selects
                    case 'select':
                        if (ResourceTable::ALL_SELECT_VALUES_KEY == $value) {
                            // Any value in select - skip it
                            continue;
                        }
                        $builder = $this->_addQueryCondition($builder, $column->queryConditionType(), $column->getDatabaseName(), '=', $value);
                        break;

                    // Use LIKE '%value%' for strings
                    case 'string':
                    default:
                        $builder = $this->_addQueryCondition($builder, $column->queryConditionType(), $column->getDatabaseName(), 'LIKE', '%'.$value.'%');
                        break;
                }
            }
        }
        /*
         * END filters
         */

        /*
         * START pagination
         */
        if ($this->_paginate) {
            if (isset($params['per_page']) && is_numeric($params['per_page']) && $params['per_page'] > 0) {
                // Get per_page from GET
                $this->_perPage = (int)$params['per_page'];
            }

            if (isset($params['page']) && is_numeric($params['page']) && $params['page'] > 1) {
                // Get page from GET
                $this->_page = (int)$params['page'];
            }
            $toSkip = ($this->_page * $this->_perPage) - $this->_perPage;

            // A the end set pagination
            $this->_totalItems = $this->_getCountForPagination($builder);
            $builder = $builder->skip($toSkip)->take($this->_perPage);
        }
        /*
         * END pagination
         */

        /*
         * START sort
         */
        if ($this->_validSort($params)) {
            // If sort configuration is valid then set it
            $this->sort($params['order_by'], strtoupper($params['order_dir']));
        }

        // Set sort configuration
        $sort = $this->getSort();
        if ($sort['index'] && $sort['dir']) {
            $builder = $builder->orderBy($sort['index'], $sort['dir']);
        }
        /*
         * END sort
         */

        $this->_builder = $builder;
    }
private function _prepareBuilder ( ) { $ builder = $ this -> _builder ; $ params = Input :: get ( ) ; /*
         * START filters
         */ if ( $ this -> renderFilterForm ( ) ) { foreach ( $ this -> _columns as $ columnData ) { $ column = new Column ( $ columnData ) ; if ( ! $ column -> searchable ( ) ) { // Not a searchable column - skip it continue ; } if ( ! isset ( $ params [ 'resource_table_' . $ column -> index ( ) ] ) ) { // Searched string not found in GET query continue ; } $ value = $ params [ 'resource_table_' . $ column -> index ( ) ] ; if ( ! $ value || ! is_string ( $ value ) ) { // Skip empty values continue ; } $ value = $ this -> _prepareFilterValue ( $ columnData , $ value ) ; switch ( $ column -> searchType ( ) ) { // Use simple WHERE = 'value' for selects case 'select' : if ( ResourceTable :: ALL_SELECT_VALUES_KEY == $ value ) { // Any value in select - skip it continue ; } $ builder = $ this -> _addQueryCondition ( $ builder , $ column -> queryConditionType ( ) , $ column -> getDatabaseName ( ) , '=' , $ value ) ; break ; // Use LIKE '%value%' for strings case 'string' : default : $ builder = $ this -> _addQueryCondition ( $ builder , $ column -> queryConditionType ( ) , $ column -> getDatabaseName ( ) , 'LIKE' , '%' . $ value . '%' ) ; break ; } } } /*
         * END filters
         */ /*
         * START pagination
         */ if ( $ this -> _paginate ) { if ( isset ( $ params [ 'per_page' ] ) && is_numeric ( $ params [ 'per_page' ] ) && $ params [ 'per_page' ] > 0 ) { // Get per_page from GET $ this -> _perPage = ( int ) $ params [ 'per_page' ] ; } if ( isset ( $ params [ 'page' ] ) && is_numeric ( $ params [ 'page' ] ) && $ params [ 'page' ] > 1 ) { // Get page from GET $ this -> _page = ( int ) $ params [ 'page' ] ; } $ toSkip = ( $ this -> _page * $ this -> _perPage ) - $ this -> _perPage ; // A the end set pagination $ this -> _totalItems = $ this -> _getCountForPagination ( $ builder ) ; $ builder = $ builder -> skip ( $ toSkip ) -> take ( $ this -> _perPage ) ; } /*
         * END pagination
         */ /*
         * START sort
         */ if ( $ this -> _validSort ( $ params ) ) { // If sort configuration is valid then set it $ this -> sort ( $ params [ 'order_by' ] , strtoupper ( $ params [ 'order_dir' ] ) ) ; } // Set sort configuration $ sort = $ this -> getSort ( ) ; if ( $ sort [ 'index' ] && $ sort [ 'dir' ] ) { $ builder = $ builder -> orderBy ( $ sort [ 'index' ] , $ sort [ 'dir' ] ) ; } /*
         * END sort
         */ $ this -> _builder = $ builder ; }
Prepares builder object before calling get method on it

@throws CollectionException
Prepares builder object before calling get method on it