Skip to main content

Configuration

The Eloquent Tables package provides several configuration options. To change these options, you should publish the config file.

Options

Theme

The theme option tells the package which frontend framework is used. This must be one of the BrickNPC\EloquentTables\Enums\Theme enum options. For now, only Bootstrap 5 is supported.

<?php
// config/eloquent-tables.php

return [
// Other options
'theme' => BrickNPC\EloquentTables\Enums\Theme::Bootstrap5,
];

Data namespace

The Eloquent Tables package uses HTML data- attributes to store data inside HTML attributes. This data is used by the JavaScript of the package. To avoid collisions with other libraries or your own data attributes, Eloquent Tables uses a namespace for these data attributes. Configure this namespace here.

<?php
// config/eloquent-tables.php

return [
// Other options
'data-namespace' => 'et',
];

When you add the searchable option to a column in your table, the table automatically displays a search bar at the top of the table. The search config option defines configuration options for this search bar.

Query name

The query_name search option defines the key holding the search value. It is nested under the table's name, so this sets the sub-key rather than the whole parameter: with the default, a table named user reads ?user[search]=ada.

<?php
// config/eloquent-tables.php

return [
// Other options
'search' => [
'query_name' => 'search'
],
];

Sorting

When you add the sortable option to a column in your table, the table can be sorted by that column. The sorting config option defines configuration options for this behavior.

Query name

The query_name sorting option defines the key holding the sort. It is nested under the table's name, so this sets the sub-key rather than the whole parameter. The value is an array where the keys are column names and the values are the direction, which is how you sort on multiple columns: ?user[sort][email]=asc&user[sort][name]=desc. The order of that array is the order the visitor clicked the headers, and that is the order the sort is applied in.

<?php
// config/eloquent-tables.php

return [
// Other options
'sorting' => [
'query_name' => 'sort'
],
];

Filtering

When you define filters on your table, the table can be filtered based on those filters. The filtering config option defines configuration options for this behavior.

Query name

The query_name filtering option defines the key holding the filters. It is nested under the table's name, so this sets the sub-key rather than the whole parameter. The value is an array where the keys are filter names and the values are the filter values, which is how you apply multiple filters at once: ?user[filter][active]=1.

<?php
// config/eloquent-tables.php

return [
// Other options
'filtering' => [
'query_name' => 'filter'
],
];

Pagination

The names of the page and per-page query parameters. Both are nested under the table's name, so these set the sub-key rather than the whole parameter.

'pagination' => [
'page_query_name' => 'page',
'per_page_query_name' => 'per_page',
],

Preferences

Whether a table remembers the per-page value and sort a visitor chose, and the cookie it stores them in. Enabled by default. See Saved preferences.

'preferences' => [
'enabled' => true,
'cookie_name' => 'eloquent_tables_preferences',
],

Icons

The Eloquent Tables package uses icons in a few places. To keep the icons consistent with your own style and icon library, you can configure the icons in the config. By default, the package uses UTF-8 characters or HTML Encoded entities.

These are the icons that are available:

Icon nameUsage
searchThe search icon in the search bar
sort-ascThe icon for sorting a table in ascending order
sort-descThe icon for sorting a table in descending order
sort-noneThe icon for when a column is sortable, but currently not sorted
checkA checkmark used in boolean and checkmark type columns
crossA cross used in boolean and checkmark type columns.
<?php
// config/eloquent-tables.php

return [
// Other options
'icons' => [
'search' => new HtmlString('&#x1F50E;&#xFE0E;'),
'sort-asc' => '⭡',
'sort-desc' => '⭣',
'sort-none' => '⭥',
'check' => '✓',
'cross' => '✗',
],
];

Tables location

The tables-location option determines where the make table command will place the generated table classes. By default, the command will place the table classes in the app/Tables directory.

<?php
// config/eloquent-tables.php

return [
// Other options
'tables-location' => 'Tables',
];

App configuration

Because the Eloquent Tables package is a Laravel package, there are a few Laravel configuration options that this package uses as well.

Locale

The built-in formatters need a locale to format things like dates and numbers. The Eloquent Tables package uses the current locale of the application, which is usually set in the .env file as APP_LOCALE.

Timezone

The built-in date formatters also need a timezone to format dates. The Eloquent Tables package uses the current timezone of the application, which is usually set in the app.php config file under the Application Timezone heading.

Decimals

This option is not a default Laravel configuration option, so you should add it yourself. The Eloquent Tables package uses this option to format numbers. It is not required to add this option, but it is recommended to do so. Add a decimals option to the app.php config file and set it to the default number of decimals you want to use when formatting numbers.

Currency

This option is not a default Laravel configuration option, so you should add it yourself. The Eloquent Tables package uses this option to format currency. It is not required to add this option, but it is recommended to do so. Add a currency option to the app.php config file and set it to the currency you want to use when formatting numbers as currency. The value should be a 3-letter ISO 4217 currency code indicating the currency to use.