Skip to content

General Settings

You can customize Laravel DataTables by updating the configuration file. The configuration file is published to config/datatables.php when you run:

php artisan vendor:publish --tag=datatables

Smart Search

Smart search automatically encloses the search keyword with wildcards ("%keyword%"). When enabled, the generated SQL looks like:

column LIKE "%keyword%"
'smart' => true,

Case Insensitive Search

Case insensitive search converts both the column values and search keyword to lowercase before comparison. The generated SQL looks like:

LOWER(column) LIKE LOWER('%keyword%')
'case_insensitive' => true,

Wildcard Search

Wildcard search adds % between every character of the keyword. The generated SQL looks like:

column LIKE "%k%e%y%w%o%r%d%"
'use_wildcards' => false,

[!TIP] When using wildcards with smart search, you only need to add a trailing %: %keyword%


Index Column

The index column name used for DataTables internal row numbering:

'index_column' => 'DT_RowIndex',

Error Handling

Configure how DataTables handles server-side errors. See the Error Handler documentation for full details.

'error' => env('DATATABLES_ERROR', null),

Available options:

  • null - Display the actual exception message
  • 'throw' - Throw a \Yajra\DataTables\Exception
  • Custom string - Display a custom friendly message
  • Translation key - Use a translation key for localization

NULLS LAST SQL

SQL pattern for ordering NULL values last, used by PostgreSQL & Oracle databases:

'nulls_last_sql' => '%s %s NULLS LAST',

[!TIP] For MySQL, use '-%s %s' as the SQL pattern to push NULLs to the end.


Engines (Advanced)

A list of available DataTables engines. You can register custom engines here:

'engines' => [
'eloquent' => Yajra\DataTables\Engines\EloquentEngine::class,
'query' => Yajra\DataTables\Engines\QueryBuilderEngine::class,
'collection' => Yajra\DataTables\Engines\CollectionEngine::class,
],

[!NOTE] Most users don't need to modify engine settings. Only change these if you're creating a custom DataTables engine.


Builders (Advanced)

Maps data source types to their corresponding engines:

'builders' => [
Illuminate\Database\Eloquent\Relations\HasMany::class => 'eloquent',
Illuminate\Database\Eloquent\Builder::class => 'eloquent',
Illuminate\Database\Query\Builder::class => 'query',
Illuminate\Support\Collection::class => 'collection',
],

Complete Configuration Reference

Here's a complete example of the config/datatables.php file:

<?php
 
return [
/*
* Smart search adds wildcards automatically
*/
'smart' => true,
 
/*
* Case insensitive searching
*/
'case_insensitive' => true,
 
/*
* Wild card character for partial matching
*/
'use_wildcards' => false,
 
/*
* DataTables internal index column name
*/
'index_column' => 'DT_RowIndex',
 
/*
* Error message configuration
*/
'error' => env('DATATABLES_ERROR', null),
 
/*
* NULLS LAST SQL pattern for PostgreSQL & Oracle
*/
'nulls_last_sql' => '%s %s NULLS LAST',
];

See Also