## Datatables Package for Laravel 4|5

[![Latest Stable Version](https://poser.pugx.org/yajra/laravel-datatables-oracle/v/stable.png)](https://packagist.org/packages/yajra/laravel-datatables-oracle)
[![Total Downloads](https://poser.pugx.org/yajra/laravel-datatables-oracle/downloads.png)](https://packagist.org/packages/yajra/laravel-datatables-oracle)
[![Build Status](https://travis-ci.org/yajra/laravel-datatables.png?branch=master)](https://travis-ci.org/yajra/laravel-datatables)
[![Latest Unstable Version](https://poser.pugx.org/yajra/laravel-datatables-oracle/v/unstable.svg)](https://packagist.org/packages/yajra/laravel-datatables-oracle)
[![License](https://poser.pugx.org/yajra/laravel-datatables-oracle/license.svg)](https://packagist.org/packages/yajra/laravel-datatables-oracle)

##Change Log

### v6.29.3 - 2018-04-05
- Fixed a bug for "undefined index" errors. #1675, credits to @redelschaap.

### v6.29.2 - 2017-12-08
- Fix issue #932. #1543, credits to @abiodunjames.

### v6.29.1 - 2017-09-26
- Return true for true, true(string) and 1 in isColumnSearchable method #1395, credits to @joeshee.

### v6.29.0 - 2017-06-07
- Add config for setting the default JsonResponse header and options. #1179
- Fix #1034
- TODO: Need to update tests.

### v6.28.1 - 2017-05-05
- Fixed: Formatting the attributes for Editor buttons. #1105, credits to @karmendra.

### v6.28.0 - 2017-04-19
- Display url and A balise as hyperlink in excel export.
- PR #1074, credits to @julianfox.

### v6.27.0 - 2017-03-08
- Add a fluent way to send route variables to DataTable service class. PR  #1071.
- Fix #1069.

### v6.26.0 - 2017-03-03
- Remove dompdf dependency and let the developers decide on which version they want to use.
> Note: This is possible breaking change for some users but needed to move forward. See https://github.com/yajra/laravel-datatables/pull/1026 for details. Thanks!

### v6.25.0 - 2017-02-23
- Add support ordering when search in nested relations. #850
- Credits to @ethaizone.

### v6.24.4 - 2017-02-09
- Fix collection case insensitive ordering.
- Fix [#945](https://github.com/yajra/laravel-datatables/issues/945).

### v6.24.3 - 2017-02-08
- Add bindings from relations. #981
- Implementation from PR #962 to fix #960.

### v6.24.2 - 2017-01-26
- Lock v6.x to support Laravel 5.0 - 5.3 only.
- Fix #942.

### v6.24.1 - 2017-01-24
- Fix regex query for pgsql.
- PR #934, credits to @alfa6661.

### v6.24.0 - 2017-01-24
- Datatables Pipeline Plugin support (Basic).
- PR #938, credits to @OzanKurt.

### v6.23.0 - 2017-01-21
- Add support for onlyTrashed model scope. Fix #928
- Move withTrashed method to Eloquent engine.

### v6.22.9 - 2017-01-20
- Do not append table name if instance is expression. #933
- Fix #927 and possible fix for #873.

### v6.22.8 - 2017-01-19
- Support for UTF8 characters when creating wildcard query.
- PR #926, credits to @Rhincodon.

### v6.22.7 - 2017-01-04
- Add datatables alias to fix singleton. PR #903, credits to @ElfSundae
- Use static class name instead FQCN. PR #902, credits to @ElfSundae
- Update license to 2017.

### v6.22.6 - 2017-01-04
- Fix print header issue when two row are same value.
- PR #913, credits to @dineshrabara.

### v6.22.5 - 2016-12-07
- Fix double wrapping of column name.

### v6.22.4 - Skipped (Sorry!)

### v6.22.3 - 2016-12-07
- Fix adding of table prefix before casting the column. PR #876
- Fix #871, #873
- Custom soft delete column support. PR #878, credits to @Huracan88
- Fix #875

### v6.22.2 - 2016-12-01
- Patch for ambiguous field error for relations issues.
- PR #849, credits to @ethaizone.

### v6.22.1 - 2016-12-01
- Patch request class and use input array access to get the values. #868
- Fix Error 500 Illegal string offset issues: #857, #657, #395.

### v6.22.0 - 2016-11-19
- Add support for searching of nested relationships.
- PR #841 & #844. Credits to @ethaizone
- Fix #696, #789, #771, #509, #441.

### v6.21.2 - 2016-11-16
- Fix html builder instance, close #830. PR #833, credits to @ElfSundae.
- Class name resolution updated. PR #812, credits to @shibby.

### v6.21.1 - 2016-10-25
- Do not convert column to raw statement. Thanks to Nick Howell for pointing the issue.

### v6.21.0 - 2016-10-22
- Support to morphToMany. PR #804, credits to @pcastrotigre
- Update fractal to ~0.14. Credits to @tyloo
- Refactor HasOneOrMany as suggested in #733
- Fix CS.

### v6.20.0 - 2016-10-13
- Support of using soft deletes trait in models.
- PR #786, credits to @DDiimmkkaass.

### v6.19.0 - 2016-09-24
- Support regex column searches when using CollectionEngine.
- PR #765, credits to @cadenzajon.

### v6.18.2 - 2016-09-13
- Make snappy pdf generation configurable via datatables config file.
- Fix loading of printPreview using loadHTML.

### v6.18.1 - 2016-09-05
- Fix to allow join of eager loaded column based on a HasMany-relationship.
- Fix #732, PR #733 credits to @SRautila.

### v6.18.0 - 2016-08-25
- Fix eager loaded model searching function. Fix #698 and #710.
- Add method to skip pagination. Credits to @Nks PR #707
- Fix collection filtered total records. If filtered total > total records, use total records.

### v6.17.1 - 2016-08-23
- Use dompdf v0.7.x.
- Implement/fix setTotalRecords on collection engine.

### v6.17.0 - 2016-08-10
- Add setter and getter for table attributes.
- PR #688, credits to @ssipos90.

### v6.16.1 - 2016-08-03
- Add orderColumns api helper. PR #679
- Fix double percent sign in query. PR #678

### v6.16.0 - 2016-07-19
- Allow global search to work with custom filter callback. #644
- Transformer instance is kept, otherwise new instance is created. #649
- Remove unused import and fix cs.

### v6.15.2 - 2016-07-14
- Fix the issue where a record is being deleted by LDT when column name used is delete.
- Fix helper doc blocks.
- Fix #565 and #640.
- Allow travis-ci failure on HHVM. Mostly due to execution timestamp.

### v6.15.1 - 2016-07-13
- Decouple fractal for better integration. #636
- Fractal manager instance can be accessed via app('datatables.fractal').

### v6.15.0 - 2016-07-05
- Add support for snappy pdf via config.
- Add laravel-snappy on suggested packages.
- Add table stripes style.
- Fix printing template when value is an array.
- Fix issue when exporting pdf and data can't be decoded.
- ErrorException in DataTransformer.php line 67: strip_tags() expects parameter 1 to be string, array given

### v6.14.0 - 2016-07-01
- Add model option to dataTable command. #620
- Make generator namespace configurable.
- Add filename in generator with timestamps.

### v6.13.1 - 2016-06-23
- Add option to manually set the total records.
    -New method: ->setTotalRecords(int total)
- Addresses count queries performance issue like #578.

### v6.13.0 - 2016-06-23
- Add Auto-Index Column. #597
- Add method 'addIndexColumn()' to compliment PR#597.
    - Note: addIndexColumn can be used without the builder.
- Add config file descriptions for reference.

### v6.12.0 - 2016-06-23
- Add support for ajax data function. #613
- Update dataTable service query return docblock and stub.

### v6.11.5 - 2016-06-01
- Fix HasOne relation which uses different methods to get foreign and other key. #585

###v6.11.4 - 2016-05-30
- Remove media screen to fix styles when printing. #583

###v6.11.3 - 2016-05-20
- Add export button collection. #568
- Fix default print preview view path. #569

###v6.11.2 - 2016-05-18
- Add CAST for Firebird #552.

###v6.11.1 - 2016-05-11
- Use Str class helper instead of strlen for better unicode support.
- Change method from private to protected as requested on #544.

###v6.11.0 - 2016-04-30
- Patch phpdoc to fix #531. PR #534
- Fix eager loading ordering for belongsToMany relationship. Fix #461, PR #490
- Add support for responsive extension. Fix #526, PR #533
- Add option to create a table footer from builder defined via column def. PR #471

###v6.10.1 - 2016-03-22
- Fix eager loading column search. PR #469.
- Fix issue #443.

###v6.10.0 - 2016-03-19
- Add feature to enable/disable smart search via config or during runtime. Fix #423
- See PR #452 for details.

###v6.9.4 - 2016-03-18
- Use full namespace in app() helper.
- PR #465, credits to @ligne13.

###v6.9.3 - 2016-03-17
- Adds an option to pass parameters to column render.
- Allows passing instance of Column into Builder columns.
- Fix security issue as reported in #460.
- Credits to @vladkucherov for this changes.

###v6.9.2 - 2016-03-16
- Pull-up isOracleSQL and fix condition using oci8.

###v6.9.1 - 2016-03-11
- Add default array value when getting columns. Fix #448

###v6.9.0 - 2016-03-11
- Re-implement facade.
- Add blacklist and whitelist feature.
- Fix string casting for object values.
- Add missing doc block for getSearchKeyword.
- Fix eloquent engine missing parent constructor.
- Add/Update class doc blocks.

###v6.8.0 - 2016-03-11
- Added Closure support for filterColumn method.
- PR #440. Credits to @codewizz.

###v6.7.3 - 2016-03-02
- Fix eager load multiple column sorting where other columns are being ignored when join statement already exists.
- Refactor redundant else order by statement.
- Call eager loads only when required when filtering and ordering.
- Extract eager loaded column join statement handler.

###v6.7.2 - 2016-02-28
- Fix collection engine sorting and sorting function.
- Fix #413 and #415.

###v6.7.1 - 2016-02-26
- Fix multiple column sorting when using eager loaded models. Fix #410

###v6.7.0 - 2016-02-26
- Add support for sorting on eager loaded models.
- PR #409 - Credits to @ikerasLT.

###v6.6.1 - 2016-02-20
- Fix eager loading search (SQLSTATE[21000]: Cardinality violation:). Issue #403.

###v6.6.0 - 2016-02-20
- Add totalCount on contact and remove excess new line.
- Remove unnecessary abstract function on BaseEngine since we have a contract.
- Remove engine implementation of contract since BaseEngine already requires it.
- Improve column name detection for filtering and sorting.
- Dynamically determine if oracle depending on connection used.
- Automatic detection of primary key when using Eloquent engine.
- Use primary key when column name could not be resolve.
- Update DataTable service doc blocks and refactor render method.

###v6.5.1 - 2016-02-19
- Fix ordering column name detection. Issue #339.
- Refactor Builder parameterize method.

###v6.5.0 - 2016-02-18
- Add support for DataTables valid callbacks.
- Fix issue #387 & #401.

###v6.4.5 - 2016-02-18
- Allow edit columns for nested arrays. PR #399 - credits to @ramilexe
- Fix flag for case insensitive search. PR #400 - credits to @ansient

###v6.4.4 - 2016-02-13
- Fix filtering in nested columns of Collections. PR #392

###v6.4.3 - 2016-02-11
- Random cs and doc block fix.
- Code refactoring to reduce complexity.

###v6.4.2 - 2016-02-11
- Change how regex code is generated after a column search. #358
- Fix addColumn fails when order falls at end of array #386

###v6.4.1 - 2016-02-10
- Fix nested eager loaded relations and column name.

###v6.4.0 - 2016-02-10
- Add feature to support global search on eager loaded models.
- PR #381. Credits to @ikerasLT.
- Fix implementation conflicts when using builder and join statements.
- Fix cs and doc blocks.

###v6.3.2 - 2016-02-04
- Add order by and group by on count sql optimization exceptions.
- Date will now be added on each released version using Y-m-d format.

###v6.3.1
- Fix artisan datatables:make service stub.

###v6.3.0
- Add option to override default ordering via `->order(\Closure $callback)` method.
- Add editor config.
- Add some new features docs.
- Remove Laravel 4.2 documentation on 6.0 branch.

###v6.2.4
- Add git attributes.

###v6.2.3
- Add setter/getter for filename.
- Add html_entity_decode when exporting file.
- Decode column title when exporting.

###v6.2.2
- Extract data transformation task to own class.
- Refactor duplicate response mapping code.
- Increase scrutinizer score.

###v6.2.1
- Fix data when exporting with html tags.
- Add filename method in stub.
- Fix some doc blocks.
- Scrutinizer refactoring.

###v6.2.0
- Enhance printing function to match what is displayed in UI.
- Enhance export function to match what is displayed in UI.
- Enhance datatables service stub.
- Address issue #310.
- Add option to set column as exportable and/or printable.
- Action and checkbox column is not exportable but printable by default.

###v6.1.3
- Fix logical bug with totalRecords and filteredRecords. Fix #333

###v6.1.2
- Fix possible conflict with Laravel helpers.php file auto-loading. Fix #330.
- Update dataTable service class stub.

###v6.1.1
- Fix ordering when using basic array response. Fix #322.

###v6.1.0
- Add support for Lumen.
- Fixes #317, #318.

###v6.0.0 - DataTable Service implementation.
- Provides DataTable Service.
- Provides artisan command for creating a service. php artisan datatables:make UsersDataTable
- Provides artisan command for creating a DataTable scope. php artisan datatables:scope ActiveUserScope
- Provides built-in support for server-side buttons. (Formerly TableTools).
- Available buttons are csv, excel, pdf, print.
- Built-in support for exporting to CSV, EXCEL and PDF using Laravel-Excel.
- Built-in printer friendly view or create your own by overriding printPreview() method.
- Change of namespace from yajra\Datatables to Yajra\Datatables.
- Deprecated of() method when using DataTable service.
- Automatic registration of required 3rd party providers.
    - [Laravel Excel](https://github.com/Maatwebsite/Laravel-Excel)
    - [Laravel Collective HTML & Forms](https://github.com/LaravelCollective/html)
- Automatic registration of Datatables facade.
- HTML Builder with javascript from template. #298 - Credits to @vladkucherov.
- HTML Builder column render now accepts a string, view or closure. #300 - Credits to @vladkucherov
- Add resource on json response by using `->with('key', 'value')` method. #277

###v5.12.5
- Get order column name from the request. Fix #307.

###v5.12.4
- Fix searching when aliasing a column. Fix #274.

###v5.12.3
- Remove checking of columns - name index and let setupColumnName method to identify the proper column name.

###v5.12.2
- Fix double prefix when using join queries. Fix #272, #273

###v5.12.1
- Fix support for PHP5.4.

###v5.12.0
- Added support for Fractal Serializer.
- Added config for default serializer.
- Note: Should be used along with setTransformer method.
- Usage:
        return Datatables::of($model)
        ->setTransformer(ModelTransformer::class)
        ->setSerializer(ModelSerializer::class)
        ->make(true);

###v5.11.14
- Sort by a multi-line 'select as' query. PR #245

###v5.11.13
- Allow fractal v0.12 and up. Fix #237.

###v5.11.12
- Use connection grammar to wrap columns and table name.

###v5.11.11
- Parse includes in fractal. Fix #225.

###v5.11.10
- CollectionEngine: fix sorting of relation columns by using seralize (like filtering). PR #197.

###v5.11.9
- Add fix for QueryBuilder: ORDER BY *. PR #194.

###v5.11.8
- Skip search, order and pagination on empty records.
- Fix #149 and #176 empty collection error when using make(false).
- Fix credits to @gabrielwelsche.

###v5.11.7
- Fix escaping of row when using eager loading. Fix #164
- Add support for escaping rows using array dot notation when declaring escapeColumns.
        Example: `->escapeColumns(['name', 'post.title'])`

###v5.11.6
- Refactor eloquent and query builder engine duplicate codes.

###v5.11.5
- Fix issues on database prefix. #161 and #162
- Fix database prefix value when using Eloquent.

###v5.11.4
- Fix Undefined offset issue when using addColumn.
- Credits to @openvast for PR #158

###v5.11.3
- Pass object or array to transformer. PR #155

###v5.11.2
- Add support for regular expressions search on column.

###v5.11.1
- Collection engine enhancement.
- Add support for filtering compound key PR #146.
- Add support for ordering using compound key.

###v5.11.0
- Add support for rendering view directly on addColumn and editColumn.

###v5.10.0
- Add LaravelDataTables on js window namespace. Issue #129. Credits to @greabock.

###v5.9.2
- Fix possible error when rendering table and overriding the attributes.
- Merge DT parameters.

###v5.9.1
- Fix default ajax value causing js data null error.

###v5.9.0
- Added escapeColumns feature to escape the values.
- Addresses XSS filtering issue #128.

###v5.8.6
- Fix DT_Row options when returning a flatten array response.
- Fix PR #126.

###v5.8.5
- Revert try-catch when compiling blade.
- Fix html builder unit test.

###v5.8.4
- Fix html builder merging of column attributes.

###v5.8.3
- Added space when setting html builder table attributes.
- Set a default data value when adding a column.
- Removed unnecessary slash when getting html builder.
- Added html builder unit test.
- Improved test coverage.

###v5.8.2
- Fix count when using DISTINCT query. Fix #125

###v5.8.1
- Fix compatiblity with PHP 5.4.

###v5.8.0
- Enhanced html builder class.
- Added function to load html builder `columns` via mixed array.
    - Automatic resolution of qualified title based on field name.
    - Overriding of column attributes.
- Added html builder and request object getter from main Datatables class.
- Added more unit tests.

###v5.7.0
- Added orderColumn feature.

###v5.6.1
- Make BaseEngine $request property public.
- Fix global searching when search value is zero (0).
- Refactor methods from v5.6.0.

###v5.6.0
- Re-implement filterColumn function with special variable $1.
- Fix filterColumn not getting included on OR statements within global search.
- Fix #115.

###v5.5.11
- Fix ordering for when using column alias and make(false). Fix #103.

###v5.5.10
- Fix casting specific to stdClass only. Fix #114.

###v5.5.9
- Fix ordering of collection when data is stdClass.

###v5.5.8
- Fix issue when converting object to array. Fix #108.

###v5.5.7
- Fix and enhance support when passing object variables using blade templating approach.
- Random code clean-up.

###v5.5.6
- Fix eager loading of hasOne and hasMany relationships. Issue #105.

###v5.5.5
- Fix collection engine sorting when columns is not defined

###v5.5.4
- Fix support for collection of objects

###v5.5.3
- Fix total filtered records count when overriding global search.
- Fix implementation of PR #95 on Collection Engine.

###v5.5.2
- Fix database driver detection on Eloquent Engine.

###v5.5.1
- Fix missing import of Helper class.

###v5.5.0
- Refactor classes to improve code quality.
- Implemented PR #95.

###v5.4.4
- Added column wrapper for SQLITE.

###v5.4.3
- Added column wrapper for Postgres. Bugfix #82.

###v5.4.2
- Throws Exception when using DataTable's legacy code.
- Fixed CS - PSR2.

###v5.4.1
- Fixed Builder generateScript method.

###v5.4
- Added Html Builder.
- Added magic methods to call enginges without the "using" word.
- Minor Bugfixes.

###v5.3
- Added scrutinizer.
- Code refactor/cleanup based on scrutinizers suggestions.
- Bugfix #75.

###v5.2
- Datatables can now be used via Laravel IOC container `app('datatables')`.
- Datatables Engine can now be used directly along with Laravel IOC.
    - Available Engines:
        - Query Builder Engine. `app('datatables')->usingQueryBuilder($builder)->make()`.
        - Eloquent Engine. `app('datatables')->usingEloquent($model)->make()`.
        - Collection Engine. `app('datatables')->usingCollection($collection)->make()`.
- Datatables is now more testable and works with https://github.com/laracasts/integrated.
- Bugfix #56.

###v5.1
- Added filterColumn function to override default global search in each column.
- Datatables class extending Query Builder's functionality along with global search.
- Restore queries on result when app is in debug mode.
- Added input on result when app is in debug mode.
- Force enable query log when app is in debug mode.
- Convert string search from preg_match to Str::contains to improve performance.
- Added support for having clause queries.
- Added support for `league/fractal` for transforming data API output.

###v5.0
- Strictly for Laravel 5++.
- Drop support for DT1.9 and below.
- Strict implmentation of DT1.10 script pattern.
- Added support for Collection as data source.

###v4.3.x
- Stable version for Laravel 5 with support for DT1.9.
- Collection Engine not available.

###v3.6.x
- Stable version for Laravel 4.2.

###v2.x
- Stable version for Laravel 4.0 and 4.1
