---
title: "How to use enablecolumns in the ctrl section of TCA"
manual: "TCA Reference"
version: "main"
permalink: "https://docs.typo3.org/permalink/t3tca:ctrl-enablecolumns@main"
source: "Ctrl/EnableColumns.rst"
modified: "2026-09-17T12:35:22+00:00"
---

# How to use `enablecolumns` in the `ctrl` section of TCA

All enable column definitions (hidden, starttime, endtime, fe_groups) are
automatically created if they are registered in the `ctrl` section in the main
TCA (not in the overrides) of a table.

[Grouping fields (palettes)](https://docs.typo3.org/permalink/t3tca:palettes@main) as known from Core TCA definitions have to be defined in the
TCA of a custom table however. If the fields should be editable by backend users,
the also have to be added to the [Record types](https://docs.typo3.org/permalink/t3tca:types@main) definitions.

## Examples of column enable configurations

**EXT:my_extension/Configuration/TCA/tx_myextension_domain_model_something.php**

```php
<?php

return [
  'ctrl' => [
    'enablecolumns' => [
      'disabled' => 'hidden',
      'starttime' => 'starttime',
      'endtime' => 'endtime',
    ],
    // ...
  ],
  'palettes' => [
    'paletteHidden' => [
      'showitem' => '
                hidden
            ',
    ],
    'paletteAccess' => [
      'showitem' => '
                starttime, endtime,
                --linebreak--,
                fe_group',
    ],
  ],
  'types' => [
    0 => [
      'showitem' => '
                --div--;core.form.tabs:general,
                    [...],
                --div--;core.form.tabs:access,
                    --palette--;;paletteHidden,
                    --palette--;;paletteAccess,
            ',
    ],
  ],
];

```

## Define all enablecolumn fields

## Make table hideable

**EXT:my_extension/Configuration/TCA/tx_myextension_domain_model_something.php**

```php
<?php

return [
  'ctrl' => [
    'enablecolumns' => [
      'disabled' => 'hidden',
    ],
    // ...
  ],
  'palettes' => [
    'visibility' => [
      'showitem' => 'hidden',
    ],
  ],
  'types' => [
    0 => [
      'showitem' => '
                --div--;core.form.tabs:general,
                    [...],
                --div--;core.form.tabs:access,
                    --palette--;;visibility,
            ',
    ],
  ],
];

```

## Common enable fields

![Record information shown editing an example record](../Images/AutomaticScreenshots/CtrlEnableFields.png)

**EXT:styleguide/Configuration/TCA/tx_styleguide_ctrl_common.php**

```php
[
    'ctrl' => [
        'title' => 'Form engine - Common table control',
        'label' => 'title',
        'descriptionColumn' => 'description',
        'tstamp' => 'tstamp',
        'crdate' => 'crdate',
        'delete' => 'deleted',
        'sortby' => 'sorting',
        'default_sortby' => 'title',
        'versioningWS' => true,
        'rootLevel' => -1,
        'iconfile' => 'EXT:styleguide/Resources/Public/Icons/tx_styleguide.svg',
        'languageField' => 'sys_language_uid',
        'transOrigPointerField' => 'l10n_parent',
        'transOrigDiffSourceField' => 'l10n_diffsource',
        'translationSource' => 'l10n_source',
        'enablecolumns' => [
            'disabled' => 'hidden',
            'starttime' => 'starttime',
            'endtime' => 'endtime',
        ],
        'security' => [
            'ignorePageTypeRestriction' => true,
        ],
    ],
]
```

## Enablecolumns / enablefields usage

Most ways of retrieving records in the frontend automatically respect the
`ctrl->enablecolumns` settings:

### Enablecolumns in TypoScript

Records retrieved in TypoScript via the objects
[RECORDS](https://docs.typo3.org/m/typo3/reference-typoscript/main/en-us/ContentObjects/Records/Index.html#cobj-records), [CONTENT](https://docs.typo3.org/m/typo3/reference-typoscript/main/en-us/ContentObjects/Content/Index.html#cobj-content)
automatically respect the settings in section
[ctrl->enablecolumns](https://docs.typo3.org/permalink/t3tca:ctrl-reference-enablecolumns@main).

### Enablecolumns / enablefields in Extbase

In Extbase repositories the records are hidden in the frontend by default,
however this behaviour can be disabled by setting
`$querySettings->setIgnoreEnableFields(true)` in the
[repository](https://docs.typo3.org/m/typo3/reference-coreapi/main/en-us/ExtensionArchitecture/Extbase/Domain/Repository.html#extbase-repository).

### Enablecolumns in queries

Using the QueryBuilder
[enable columns restrictions are automatically applied](https://docs.typo3.org/m/typo3/reference-coreapi/main/en-us/ApiOverview/Database/DoctrineDbal/BasicCrud/Index.html#database-select).

The same is true when
[select() is called on the connection](https://docs.typo3.org/m/typo3/reference-coreapi/main/en-us/ApiOverview/Database/DoctrineDbal/Connection/Index.html#database-connection-select).

See the [Restriction builder](https://docs.typo3.org/m/typo3/reference-coreapi/main/en-us/ApiOverview/Database/DoctrineDbal/RestrictionBuilder/Index.html#database-restriction-builder) for details.
