---
title: Neue TCA Typen in TYPO3 v12
url: "https://b13.com/de/wissen/neue-tca-typen-in-typo3-v12"
description: Schalte die erweiterten TCA-Typen von TYPO3 v12 frei. Verbesserungen am Table Configuration Array sorgen für optimierten Code und einfache Arbeit für Integratoren und Extension-Autoren.
image: "https://b13.com/fileadmin/_processed_/1/7/csm_NewTCA_Sharing_0c810f87af.png"
date: 2023-11-22
modified: 2026-08-19
lastUpdated: 2026-08-19
---

# Neue TCA Typen in TYPO3 v12

[ TYPO3 ](https://b13.com/de/wissen/typo3) [ TYPO3 v12 ](https://b13.com/de/wissen/typo3-v12)

 Neue TCA Typen in TYPO3 v12
=============================

 Easier configuration for your custom records

![](https://b13.com/fileadmin/_processed_/c/6/csm_benni_5e519221c4.jpg)Benni Mack

  11. Dezember 2023

 [ RSS Feed ](https://b13.com/de/rss.xml)

  ![Grafik mit Benutzerschnittstellenelementen wie Schiebereglern, Kontrollkästchen und Eingabefeldern, begleitet von einer Glühbirne und Zeichentools wie Bleistiften und einem Lineal, alles in einem lebhaften Rot- und Orangeton.](https://b13.com/fileadmin/_processed_/c/2/csm_NewTCA_Headerbild_8330a16f1d.webp)

In diesem Blog-Beitrag werden wir uns mit benutzerfreundlichen Methoden zur Konfiguration von TCA beschäftigen. TCA ist das Kraftwerk hinter der gesamten Logik zur Bearbeitung und Darstellung von Datenbankeinträgen in TYPO3.

   Was ist TCA? Und warum sollte mich das interessieren?
-------------------------------------------------------

Das Herzstück von TYPO3 ist TCA, ein Akronym für „Table Configuration Array“ - ein PHP-basierter Layer, der die Definition von Daten vereinheitlicht, die innerhalb von TYPO3 zugänglich und manipulierbar sind. Dieser Layer regelt die Struktur der Datenspeicherung in der Datenbank, erweitert deren Möglichkeiten um zusätzliche Felder für Content-Ersteller und ermöglicht ein flexibles Rendering in TypoScript über das Frontend. Es ist wichtig, diese Konzepte zu verstehen, wenn du TYPO3 erweitern willst, denn TCA definiert alles von Seiten und Inhaltselementen bis hin zu Adressen und Website-Benutzerdatensätzen. Mehr über TCA und seine Konzepte erfährst du im [TCA Reference Guide auf docs.typo3.org.](https://docs.typo3.org/m/typo3/reference-tca/main/en-us/)

In TYPO3 verleiht TCA den Datenbanktabellen und -feldern einen semantischen Wert. Wenn du zum Beispiel möchtest, dass Redakteure aus drei gültigen Optionen wählen können, erleichtert TCA die Darstellung der Optionen als Dropdown in der Verwaltungsoberfläche. Während einem Datenbankfeld allein diese kontextuelle Bedeutung fehlt, übernimmt TCA die Aufgabe, diese zu liefern. Jede Extension kann nahtlos neue Felder oder sogar ganze Datenbanktabellen zur Bearbeitung im TYPO3 Backend einführen. Wenn du also jemals vorhattest, über das Basis-Framework von TYPO3 hinauszugehen, ist dies ein hervorragender Startpunkt.

   Bisherige Probleme mit TCA
----------------------------

Da es sich bei TCA um ein umfangreiches PHP-kompiliertes Array handelt, bietet es ein hohes Maß an Flexibilität für umfangreiche Manipulationen innerhalb von TYPO3-Extensions. Allerdings trägt TCA das Gewicht der umfangreichen Geschichte von TYPO3, und für Neulinge war seine Semantik nicht immer einfach. Zum Beispiel ist es nicht einfach zu verstehen, dass ein Feld vom Typ `input` eine `eval`-Option wie `password` haben kann, um seine Behandlung als Passwort-Eingabefeld für Redakteure zu kennzeichnen. Und die Informationen, die nicht zusammen mit dem einfachen Wert in der Datenbank gespeichert werden, machen die Sache noch komplizierter. Außerdem wurde der Begriff „input“ gelegentlich auf Felder angewandt, die für die Auswahl bestimmter Daten oder Zeiten bestimmt waren, was zu einer verworrenen Interpretation seiner Bedeutung beitrug.

   Smartere Types mit weniger verwirrenden Optionen
--------------------------------------------------

In TYPO3 v11 debütierten mehrere neue TCA-Typen, darunter `type=language` zur Erleichterung der Auswahl der verfügbaren Sprachen für eine Site und `type=category` anstelle des generischen `type=select` mit `renderType=selectTree` und einem Verweis auf die Datenbanktabelle `sys_category`. TYPO3 v12 hat diese Konzepte zu neuen Höhen geführt und ihren Umfang und ihre Funktionalität weiter ausgebaut.

   Begrüße neue Types in Version 12
----------------------------------

Anstatt die potenziell fehleranfällige Aufgabe zu bewältigen, `type=input` mit `eval` in TCA zu schreiben, können Autoren von Erweiterungen in Version 12 die folgenden neuen TCA-Typen zur Definition von Feldern nutzen:

- color
- datetime
- email
- file
- folder
- json
- link
- number
- password
- uuid

In der offiziellen TYPO3-Dokumentation sind [alle Feldtypen](https://docs.typo3.org/m/typo3/reference-tca/main/en-us/ColumnsConfig/Index.html) im TCA-Referenzhandbuch aufgeführt.

   Die Vorteile von verschlanktem Code
-------------------------------------

Die Typen `uuid` und `json` sind völlig neu und wurden für spezielle Anwendungsfälle eingeführt — vor allem im Zusammenhang mit den neuen Systemerweiterungen „[Reactions](https://docs.typo3.org/c/typo3/cms-reactions/main/en-us/)„ und “[Webhooks](https://docs.typo3.org/c/typo3/cms-core/main/en-us/Changelog/12.3/Feature-99629-Webhooks-OutgoingWebhooksForTYPO3.html)„. Alle anderen Felder wurden sorgfältig neu definiert, was das Leben der bestehenden TYPO3-Integratoren und Extension-Autoren überall vereinfacht.

Schauen wir uns ein Beispiel an. Color steht für die Auswahl eines beliebigen HEX-Farbwertes. Dies wurde bisher über `type=input` und `renderType=colorpicker` definiert. Jetzt werden spezifische Komponenten implizit durch die Verwendung von `type=color` definiert. Weniger zu schreibender Code sorgt für einen wesentlich schlankeren Kodierungsprozess.

  ```
1<br></br>2<br></br>3<br></br>4<br></br>5<br></br>6<br></br>7<br></br>8<br></br>9<br></br>10<br></br>11<br></br>12<br></br>13<br></br>14<br></br>15<br></br>16<br></br>17<br></br>18<br></br>19<br></br>20<br></br>21<br></br>22<br></br>23<br></br>24<br></br>25<br></br>26<br></br>27<br></br>28<br></br>29<br></br>30<br></br>31<br></br>
```

```
<span class="hljs-comment">// Before</span><br></br><br></br><span class="hljs-string">'a_color_field'</span> => [<br></br>    <span class="hljs-string">'label'</span> => <span class="hljs-string">'Color field'</span>,<br></br>    <span class="hljs-string">'config'</span> => [<br></br>        <span class="hljs-string">'type'</span> => <span class="hljs-string">'input'</span>,<br></br>        <span class="hljs-string">'renderType'</span> => <span class="hljs-string">'colorpicker'</span>,<br></br>        <span class="hljs-string">'size'</span> => <span class="hljs-number">20</span>,<br></br>        <span class="hljs-string">'max'</span> => <span class="hljs-number">1024</span>,<br></br>        <span class="hljs-string">'eval'</span> => <span class="hljs-string">'trim'</span>,<br></br>        <span class="hljs-string">'valuePicker'</span> => [<br></br>            <span class="hljs-string">'items'</span> => [<br></br>                [<span class="hljs-string">'TYPO3 orange'</span>, <span class="hljs-string">'#FF8700'</span>],<br></br>            ],<br></br>        ],<br></br>    ],<br></br>],<br></br><br></br><span class="hljs-comment">// After</span><br></br><span class="hljs-string">'a_color_field'</span> => [<br></br>    <span class="hljs-string">'label'</span> => <span class="hljs-string">'Color field'</span>,<br></br>    <span class="hljs-string">'config'</span> => [<br></br>        <span class="hljs-string">'type'</span> => <span class="hljs-string">'color'</span>,<br></br>        <span class="hljs-string">'size'</span> => <span class="hljs-number">20</span>,<br></br>        <span class="hljs-string">'valuePicker'</span> => [<br></br>            <span class="hljs-string">'items'</span> => [<br></br>                [<span class="hljs-string">'TYPO3 orange'</span>, <span class="hljs-string">'#FF8700'</span>],<br></br>            ],<br></br>        ],<br></br>    ]<br></br>]<br></br>
```

  Ähnliche Fälle der Verdichtung der TCA-Definition, die ursprünglich durch „eval“ mit spezifischen Optionen verwaltet wurden, sind nun zu benutzerdefinierten TCA-Typen übergegangen. Zu meinen Favoriten gehören „link“ und „file“.

   Type link
-----------

```
1<br></br>2<br></br>3<br></br>4<br></br>5<br></br>6<br></br>7<br></br>8<br></br>9<br></br>10<br></br>11<br></br>12<br></br>13<br></br>14<br></br>15<br></br>16<br></br>17<br></br>18<br></br>19<br></br>20<br></br>21<br></br>22<br></br>23<br></br>24<br></br>25<br></br>26<br></br>27<br></br>28<br></br>29<br></br>30<br></br>31<br></br>32<br></br>33<br></br>34<br></br>35<br></br>36<br></br>37<br></br>38<br></br>
```

```
// <span class="hljs-keyword">Before</span><br></br><br></br><span class="hljs-string">'cta_link'</span> => [<br></br>    <span class="hljs-string">'label'</span> => <span class="hljs-string">'CTA Link'</span>,<br></br>    <span class="hljs-string">'config'</span> => [<br></br>        <span class="hljs-string">'type'</span> => <span class="hljs-string">'input'</span>,<br></br>        <span class="hljs-string">'renderType'</span> => <span class="hljs-string">'inputLink'</span>,<br></br>        <span class="hljs-string">'required'</span> => <span class="hljs-keyword">true</span>,<br></br>        <span class="hljs-string">'max'</span> => <span class="hljs-number">1024</span>,<br></br>        <span class="hljs-string">'eval'</span> => <span class="hljs-string">'trim,<br></br>        '</span>fieldControl<span class="hljs-string">' => [<br></br>            '</span>linkPopup<span class="hljs-string">' => [<br></br>                '</span>disabled<span class="hljs-string">' => true,<br></br>                '</span><span class="hljs-keyword">options</span><span class="hljs-string">' => [<br></br>                    '</span>titl<span class="hljs-string">e' => '</span>Browser titl<span class="hljs-string">e',<br></br>                    '</span>blindLinkFields<span class="hljs-string">' => '</span><span class="hljs-keyword">class</span>,target,titl<span class="hljs-string">e',<br></br>                    '</span>blindLinkOptions<span class="hljs-string">' => '</span>mail,folder,file,telephon<span class="hljs-string">e',<br></br>                ],<br></br>            ],<br></br>        ],<br></br>        '</span>softref<span class="hljs-string">' => '</span>typolink<span class="hljs-string">',<br></br>    ],<br></br>],<br></br><br></br>// After<br></br>'</span>cta_link<span class="hljs-string">' => [<br></br>    '</span>label<span class="hljs-string">' => '</span>CTA Link<span class="hljs-string">',<br></br>    '</span>config<span class="hljs-string">' => [<br></br>        '</span>typ<span class="hljs-string">e' => '</span>link<span class="hljs-string">',<br></br>        '</span>required<span class="hljs-string">' => true,<br></br>        '</span>allowedTypes<span class="hljs-string">' => ['</span>pag<span class="hljs-string">e', '</span>url<span class="hljs-string">', '</span><span class="hljs-type">record</span><span class="hljs-string">'],<br></br>        '</span>appearanc<span class="hljs-string">e' => [<br></br>            '</span>enableBrowser<span class="hljs-string">' => false,<br></br>            '</span>browserTitl<span class="hljs-string">e' => '</span>Browser titl<span class="hljs-string">e',<br></br>            '</span>allowedOptions<span class="hljs-string">' => ['</span>params<span class="hljs-string">', '</span>rel<span class="hljs-string">'],<br></br>        ],<br></br>    ]<br></br>]</span><br></br>
```

   Type „File“
-------------

Das Schreiben von Beziehungen in Dateien war früher eine Besonderheit, wird aber jetzt über einen benutzerdefinierten TCA-Typ vereinfacht:

  ```
1<br></br>2<br></br>3<br></br>4<br></br>5<br></br>6<br></br>7<br></br>8<br></br>9<br></br>10<br></br>11<br></br>12<br></br>13<br></br>14<br></br>15<br></br>16<br></br>17<br></br>18<br></br>19<br></br>20<br></br>21<br></br>22<br></br>23<br></br>24<br></br>25<br></br>
```

```
<span class="hljs-comment">// Before</span><br></br><span class="hljs-string">'columns'</span> => [<br></br>    <span class="hljs-string">'image'</span> => [<br></br>        <span class="hljs-string">'label'</span> => <span class="hljs-string">'My image'</span>,<br></br>        <span class="hljs-string">'config'</span> => \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::getFileFieldTCAConfig(<br></br>            <span class="hljs-string">'image'</span>,<br></br>            [<br></br>                <span class="hljs-string">'maxitems'</span> => <span class="hljs-number">6</span>,<br></br>            ],<br></br>            $GLOBALS[<span class="hljs-string">'TYPO3_CONF_VARS'</span>][<span class="hljs-string">'GFX'</span>][<span class="hljs-string">'imagefile_ext'</span>]<br></br>        ),<br></br>    ],<br></br>],<br></br><br></br><span class="hljs-comment">// After</span><br></br><span class="hljs-string">'columns'</span> => [<br></br>    <span class="hljs-string">'image'</span> => [<br></br>        <span class="hljs-string">'label'</span> => <span class="hljs-string">'My image'</span>,<br></br>        <span class="hljs-string">'config'</span> => [<br></br>            <span class="hljs-string">'type'</span> => <span class="hljs-string">'file'</span>,<br></br>            <span class="hljs-string">'maxitems'</span> => <span class="hljs-number">6</span>,<br></br>            <span class="hljs-string">'allowed'</span> => <span class="hljs-string">'common-image-types'</span><br></br>        ],<br></br>    ],<br></br>],<br></br>
```

   Die existierende Installation ohne viel Aufwand übertragen
------------------------------------------------------------

TYPO3 ist mit einem automatischen Migrationsprozess für bestehende TCA ausgestattet, um einen nahtlosen Übergang zur neuen Struktur zu ermöglichen und jegliche Bedenken während des Upgrade-Prozesses zu zerstreuen.

Bei b13 sind wir überzeugte Verfechter von [Rector](https://www.typo3-rector.com/) for TYPO3 - einem Tool, das entwickelt wurde, um Extension-Code, einschließlich TCA, selbstständig zu migrieren und sicherzustellen, dass er mit der zukunftssicheren Syntax übereinstimmt.

   Du brauchst Hilfe? Wir helfen dir gerne weiter!
-------------------------------------------------

Wenn du immer noch Schwierigkeiten haben, deine Installation auf die nächste Version zu aktualisieren, setz dich mit uns in Verbindung und wir beraten Dich gerne.

 [ Meld dich bei uns! ](https://b13.com/de/kontakt)

  ###  Geschrieben von:

 ![Lächelnder Mann mit kurzen Haaren und einem Bart, der ein weinrotes Hemd trägt, steht in einer modernen Innenumgebung mit unscharfen Hintergrundelementen.](https://b13.com/fileadmin/_processed_/c/6/csm_benni_66cce9a81f.webp)

Der Mitbegründer von b13 und Leiter des TYPO3 CMS Core Developement, Benni Mack, bestimmt maßgeblich unsere technischen Best-Practises. Er ist zuständig für den Aufbau und die Wartung unserer technischen Infrastruktur und koordiniert unseren Beitrag zum Open-Source-Projekt. Sein wesentliches Werkzeug: TYPO3

 Benni Mack  CTO

 [ mehr von Benni Mack ](https://b13.com/de/team/benni-mack)

  Ähnliche Artikel
------------------

- ![Cartoon-Trophäenfigur umgeben von Händen, die Daumen hoch und ein Herzzeichen geben, vor einem Hintergrund mit Zahnradmuster.](https://b13.com/fileadmin/_processed_/f/7/csm_T3ppy_Design_Kit_Headerbild_b51eb9dc31.webp)

    ###  T3ppy gibt TYPO3 ein freundliches Gesicht

     06. August 2026 | Florian “Flix” Keitgen

     TYPO3 ist leistungsstark — muss sich aber nicht unpersönlich anfühlen. Das ist T3ppy, unser freundlicher Begleiter fürs Backend.

     [ weiterlesen: T3ppy gibt TYPO3 ein freundliches Gesicht ](https://b13.com/de/wissen/t3ppy-design-kit)
- ![Hammer mit der Aufschrift 'KI' auf einem schaltkreis-musternden Hintergrund mit gelben Sternen, der Regulierung oder Gesetzgebung im Zusammenhang mit künstlicher Intelligenz in der EU symbolisiert.](https://b13.com/fileadmin/_processed_/1/0/csm_EUAIAct_Headerbild_510724b3de.webp)

    ###  KI-Inhalte in TYPO3: Transparenz braucht Verantwortung

     02. August 2026 | Benni Mack

     Der EU AI Act rückt die Herkunft KI-generierter Inhalte in den Fokus. AI Label kennzeichnet KI-generierte und KI-bearbeitete Inhalte in TYPO3 und dokumentiert, wer den…

     [ weiterlesen: KI-Inhalte in TYPO3: Transparenz braucht Verantwortung ](https://b13.com/de/wissen/ai-content-in-typo3-labelling-needs-accountability)
- ![Eine Reihe stilisierter Figuren in verschiedenen Posen, jede mit einem markanten orangefarbenen Hut, zeigt einen Übergang vom Gehen zum Stillstehen, während sie auf ein Handy schauen, vor einem lila Gitterhintergrund.](https://b13.com/fileadmin/_processed_/d/7/csm_QueuesDDEV_Headerbild_f640931350.webp)

    ###  Bessere Skalierbarkeit mit entkoppelten Queues: So richtest du RabbitMQ mit TYPO3 ein

     10. April 2024 | Jochen Roth

     Wenn integrierte Nachrichtentransporte an ihre Grenzen stoßen, kann RabbitMQ TYPO3 mit einer skalierbaren, robusten Message Queue versorgen.

     [ weiterlesen: Bessere Skalierbarkeit mit entkoppelten Queues: So richtest du RabbitMQ mit TYPO3 ein ](https://b13.com/de/wissen/bessere-skalierbarkeit-mit-entkoppelten-queues-so-richtest-du-rabbitmq-mit-typo3-ein)
- ![Eine Cartoonfigur, die einem Schild ähnelt, gibt ein Daumen hoch vor einer Computeroberfläche mit verschiedenen Menüoptionen.](https://b13.com/fileadmin/_processed_/e/6/csm_Header_cda1f80173.webp)

    ###  Gestatten, T3ppy! Ein neues Zeitalter für die Redaktionsarbeit in TYPO3

     01. April 2026 | Florian “Flix” Keitgen

     Entdecke T3ppy und AiM — Deine KI-Assistenz im TYPO3 Backend für bessere Inhalte, klare Strukturen und volle Kontrolle über Redaktions-Prozesse.

     [ weiterlesen: Gestatten, T3ppy! Ein neues Zeitalter für die Redaktionsarbeit in TYPO3 ](https://b13.com/de/wissen/gestatten-t3ppy-ein-neues-zeitalter-fuer-die-redaktionsarbeit-in-typo3)
- ![Retro-Mikrofon-Illustration mit einem Einkaufswagen-Symbol im Hintergrund, das E-Commerce oder Online-Shopping symbolisiert.](https://b13.com/fileadmin/_processed_/f/8/csm_Marketplace_Headerbild_ee1575614c.webp)

    ###  Warum TYPO3 einen Marketplace für Produkte braucht

     25. März 2026 | Florian “Flix” Keitgen

     Ein Marketplace würde TYPO3-Produkte sichtbarer machen, den Vergleich erleichtern und Agenturen sowie Kunden gleichermaßen profitieren lassen.

     [ weiterlesen: Warum TYPO3 einen Marketplace für Produkte braucht ](https://b13.com/de/wissen/warum-typo3-einen-marketplace-fuer-produkte-braucht)
- ![Eine Hand hält eine Lupe über den Laptop-Bildschirm, der eine Webseite mit einem Bild und Textelementen anzeigt.](https://b13.com/fileadmin/_processed_/e/5/csm_BackendUserSection_Headerbild_6093c842fd.webp)

    ###  Ein echter Geheimtipp in TYPO3: Die Backend User Section (Doktype 6)

     05. März 2026 | David Steeb

     Entdecke den oft unterschätzten Doktype 6 (Backend User Section) in TYPO3 für sichere interne Vorschauen, Redaktionstrainings und Prototyping. Erfahre praxisnahe Anwendungsfälle,…

     [ weiterlesen: Ein echter Geheimtipp in TYPO3: Die Backend User Section (Doktype 6) ](https://b13.com/de/wissen/ein-echter-geheimtipp-in-typo3-die-backend-user-section-doktype-6)
- ![Zwei stilisierte Webseiten-Designs mit einem Benutzerprofil, Platzhaltern für Bilder und Textabschnitten, vor einem hellblauen Hintergrund.](https://b13.com/fileadmin/_processed_/2/0/csm_BackendPreview_Headerbild_b4c5799cfa.webp)

    ###  Backend-Content-Previews mit System — warum wir EXT:backendpreviews entwickelt haben

     09. Februar 2026 | David Steeb

     EXT:backendpreviews sorgt für konsistente Content-Previews im TYPO3-Backend mit Fluid Templates, Layouts und Partials.

     [ weiterlesen: Backend-Content-Previews mit System — warum wir EXT:backendpreviews entwickelt haben ](https://b13.com/de/wissen/backend-content-previews-mit-system-warum-wir-extbackendpreviews-entwickelt-haben)
- ![Eine menschliche Hand schüttelt eine Roboterhand vor einem lila Hintergrund mit Herzmustern, was die Zusammenarbeit zwischen Menschen und Technologie symbolisiert.](https://b13.com/fileadmin/_processed_/6/2/csm_AIbotsLoveMarkdown_Headerbild_72fe5820d6.webp)

    ###  Das Internet ist nicht mehr nur für Menschen — KI-Bots lieben Markdown

     28. Januar 2026 | Benni Mack

     Discover why most web traffic is now automated and how TYPO3’s structured content model prepares websites for humans, editors, and AI systems.

     [ weiterlesen: Das Internet ist nicht mehr nur für Menschen — KI-Bots lieben Markdown ](https://b13.com/de/wissen/das-internet-ist-nicht-mehr-nur-fuer-menschen-ki-bots-lieben-markdown)
- ![Mehrere farbenfrohe Mockups von Webseiten, die übereinander gestapelt sind und verschiedene Layouts sowie Designelemente vor einem lila Hintergrund präsentieren.](https://b13.com/fileadmin/_processed_/e/3/csm_CaminoTheme_Headerbild_d082598009.webp)

    ###  Camino—The Need for a Default Theme in TYPO3 Is Real

     27. Januar 2026 | Benni Mack

     With TYPO3 v14, Camino introduces a default theme that removes friction from first installs. Why this matters—and how TYPO3 laid the groundwork.
- ![Grafik mit stilisierten Darstellungen eines Turms, in dessen Mitte der Text "T3CON25 Düsseldorf" deutlich sichtbar ist.](https://b13.com/fileadmin/_processed_/7/b/csm_T3CON2025_Headerbild_fc9c5cc53e.webp)

    ###  T3CON25 — der Zukunft des Content Managements einen Schritt näher

     10. Dezember 2025 | Franzi Töpler

     Die T3CON25 zeigte die Zukunft von TYPO3 mit Einblicken in TYPO3 v14, KI, digitale Souveränität und Open-Source-Lösungen für moderne, sichere Webauftritte.

     [ weiterlesen: T3CON25 — der Zukunft des Content Managements einen Schritt näher ](https://b13.com/de/wissen/t3con25-der-zukunft-des-content-managements-einen-schritt-naeher)