Common fields
Mandatory fields
If a table has a TCA definition, TYPO3 will automatically create the following fields:
uid
- An auto-incrementing unique identifier. This field is the table key and is used as a reference in relationships between records.
pid
- The
uid
field of the parent page. A record is situated on its parent page. If this value is 0 the record is not connected to a page.
These fields are not defined anywhere else in the TCA configuration. It is not possible to use other names for these fields.
Fields used by convention
Warning
It is possible to change the names of the following fields, but it is strongly discouraged. Doing so breaks convention and may lead to compatibility issues with third party extensions.
All the fields mentioned below are added to the database automatically. You do
not need to define these fields in ext_
and doing so may lead to
problems later on. You only need to configure the fields in the TCA php files.
Soft delete
deleted
-
This field enables soft delete in records. Configure it by setting ctrl->delete:
EXT:my_extension/Configuration/TCA/tx_myextension_domain_model_something.phpWarning
If you do not configure this field, records will be hard deleted. The backend DataHandler and Extbase will automatically execute (hard)
DELETE
statements.The
deleted
field is not visible in backend forms. It is handled separately by the DataHandler and therefore does not need to be defined in thecolumns
section.
Enablecolumns
Changed in version 13.3
The column definitions for these settings are auto-created. See also Migration.
hidden
-
This field enables soft hiding of records. Configure it by setting ctrl->enablecolumns->disabled:
EXT:my_extension/Configuration/TCA/tx_myextension_domain_model_something.php<?php return [ 'ctrl' => [ 'enablecolumns' => [ 'disabled' => 'hidden', ], // ... ], 'palettes' => [ 'visibility' => [ 'showitem' => 'hidden', ], ], 'types' => [ 0 => [ 'showitem' => ' --div--;LLL:EXT:core/Resources/Private/Language/Form/locallang_tabs.xlf:general, [...], --div--;LLL:EXT:core/Resources/Private/Language/Form/locallang_tabs.xlf:access, --palette--;;visibility, ', ], ], ];
starttime
andendtime
-
These fields can enable records at a starttime and disable them at an endtime. Configure them by setting ctrl->enablecolumns->starttime or endtime:
EXT:my_extension/Configuration/TCA/tx_myextension_domain_model_something.php<?php return [ 'ctrl' => [ 'enablecolumns' => [ 'disabled' => 'hidden', 'starttime' => 'starttime', 'endtime' => 'endtime', ], // ... ], 'palettes' => [ 'access' => [ 'showitem' => 'starttime, endtime', ], 'visibility' => [ 'showitem' => 'hidden', ], ], 'types' => [ 0 => [ 'showitem' => ' --div--;LLL:EXT:core/Resources/Private/Language/Form/locallang_tabs.xlf:general, [...], --div--;LLL:EXT:core/Resources/Private/Language/Form/locallang_tabs.xlf:access, --palette--;;visibility, --palette--;;access, ', ], ], ];
fe_
group -
This field defines which field is used for access control. Configure it by setting ctrl->enablecolumns->fe_group:
EXT:my_extension/Configuration/TCA/tx_myextension_domain_model_something.php<?php return [ 'ctrl' => [ 'enablecolumns' => [ 'fe_group' => 'fe_group', ], // ... ], 'palettes' => [ 'access' => [ 'label' => 'LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:palette.access', 'showitem' => ' fe_group, ', ], ], 'types' => [ 0 => [ 'showitem' => ' --div--;LLL:EXT:core/Resources/Private/Language/Form/locallang_tabs.xlf:general, [...], --div--;LLL:EXT:core/Resources/Private/Language/Form/locallang_tabs.xlf:access, --palette--;;access, ', ], ], ];
Warning
These fields that enable records ("enable fields") are only respected in the frontend if you use the correct queries and Extbase repository settings in your extension code. See Enablecolumns / enablefields usage for more information.
Manual sorting in the backend
sorting
-
This field is used to sort records in the backend. Configure it by setting ctrl->sortby:
EXT:my_extension/Configuration/TCA/tx_myextension_domain_model_something.php
Attention
The sortby field contains an integer and is managed by the DataHandler. It should not be defined in the Field definitions (columns) section in a TCA file. The value of this field can be changed at any time by the DataHandler.
Use default_sortby if you want to sort by a field that belongs to the domain.
Fields managed by the DataHandler
The following fields are automatically set when a record is written by the DataHandler. They should never be displayed in backend forms or explicitly set. They do not need to be defined in the Field definitions (columns) section of the TCA.
<?php
return [
'ctrl' => [
'tstamp' => 'tstamp',
'crdate' => 'crdate',
'origUid' => 't3_origuid',
// ...
],
];
tstamp
-
This field is automatically updated to the current timestamp when the record is updated or saved in the DataHandler.
It can be configured by setting ctrl->tstamp.
crdate
-
This field is automatically set to the current timestamp if the record is created by the DataHandler.
It can be configured by setting ctrl->crdate.
t3_
origuid -
Field name containing the uid of the original record if a record is created as a copy or new version of another record.
It can be configured by setting ctrl->origUid.