---
title: "TCA displayCondition - Verknüpfung über zwei Tabellen"
url: "https://www.typo3.net/d/114993-tca-displaycondition-verknuepfung-ueber-zwei-tabellen"
source: "typo3.net"
tags: ["Extensions","Entwicklung","Extbase","Frage","TCA"]
created: "2013-06-01"
last_reply: "2013-06-05"
replies: 3
solved: true
page: 1
pages: 1
lang: "de"
---

# TCA displayCondition - Verknüpfung über zwei Tabellen

Extensions › Entwicklung · 3 Antworten · gelöst · gestartet 2013-06-01

## Frage

**Unbekannter Benutzer** · 2013-06-01 · [Beitrag #1](https://www.typo3.net/d/114993-tca-displaycondition-verknuepfung-ueber-zwei-tabellen/1)

Hallo,
ich würde gerne in Abhängigkeit einer Auswahl von einer Select-Box ein anderes Feld ein-/ausblenden (in einem Backend-Modul).
Das Problem ist, es sind zwei Tabellen.

Sprich zb. **tx_client_domain_model_client** hat das Feld **template**. Wenn dieses Feld geändert wird soll aus der Tabelle **tx_client_domain_model_image** das Feld **image** ausgeblendet werden.

Die beiden Tabellen stehen in einer 1:n Relation (tx_client_domain_model_client -> tx_client_domain_model_image)

Ich habe folgendes versucht:

ext_tables.php

```php
$TCA['tx_client_domain_model_client'] = array(
	'ctrl' => array(),
        'requestUpdate' => 'template',
```

Und im TCA für das Image:

Image.php

```php
$TCA['tx_client_domain_model_image'] = array(
...
 'columns' => array(
    'image' => array(
	'exclude' => 0,
	'label' => 'LLL:EXT:client/Resources/Private/Language/locallang_db.xlf:tx_client_domain_model_image.image',
        'displayCond' => 'FIELD:template:=:1',
        'config' => array(
		'type' => 'group',
		'internal_type' => 'file',
		'uploadfolder' => 'uploads/tx_client',
		'show_thumbs' => 1,
		'size' => 1,
                'minitems' => 0,
                'maxitems' => 1,
		'allowed' => $GLOBALS['TYPO3_CONF_VARS']['GFX']['imagefile_ext'],
		'disallowed' => '',
	),
    ),
  ),
...
);
```

TCA Client.php (Ausschnitt für das *template*-Feld)

```php
	'template' => array(
		'exclude' => 0,
		'label' => 'LLL:EXT:client/Resources/Private/Language/locallang_db.xlf:tx_client_domain_model_client.template',
		'config' => array(
			'type' => 'select',
			'items' => array(
				array('default', 0),
                                array('actor', 1),
			),
			'size' => 1,
			'maxitems' => 1,
			'eval' => ''
		),
```

Leider bekomme ich es nicht hin. Kann mir hier jemand helfen?

Hatte gedacht ich könnte über

```php
'displayCond' => 'FIELD:tx_client_domain_model_client.template:=:1',
```

darauf zugreifen. Hat aber leider nicht geklappt.
Geht das überhaupt?

## Beste Antwort

**karlchen** · 2013-06-04 · [Beitrag #2](https://www.typo3.net/d/114993-tca-displaycondition-verknuepfung-ueber-zwei-tabellen/2)

Hi,

statt die displayCond könntest du auch die "types" Funktion im TCA nutzen. Das ist das Dingen wenn du z.B. Ein Inhaltselment anlegst und dann von "Text" auf "Text mit Bild" änderst.
Bei diesen Änderungen werden immer neue Feld Konfigurationen geladen, somit könntest du dein Image Feld ausblenden, bzw weglassen.

Schau dir vielleicht "news" als Beispiel an:
in der ext_tables.php wird das Feld definiert welches das neuladen erzwingen soll, in diesem Fall heißt das Feld schon 'type'

```php
$TCA['tx_news_domain_model_news'] = array(
	'ctrl' => array(
                  ...
		'type' => 'type',
                ....
```

in der Tca/news.php wird das Feld als select definiert

```php
    'type' => array(
...
			'config' => array(
				'type' => 'select',
				'items' => array(
					array($ll . 'tx_news_domain_model_news.type.I.0', 0),
					array($ll . 'tx_news_domain_model_news.type.I.1', 1),
					array($ll . 'tx_news_domain_model_news.type.I.2', 2),
				),
				'size' => 1,
				'maxitems' => 1,
			)
		),
```

ganz unten in der selben Datei gibt es ein weiteres array was 'types' heißt, dort werden dann die Felder notiert die angezeigt werden sollen, für den jeweiligen Wert aus dem Feld 'type' (hier 0,1 und 2)

```php
'types' => array(
		// default news
		'0' => array(
			'showitem' => 'l10n_parent, l10n_diffsource,
				...
		),
		// internal url
		'1' => array(
			'showitem' => 'l10n_parent, l10n_diffsource,
					title;;paletteCore,;;;;2-2-2, teaser;; ...
				...
		),
		// external url
		'2' => array(
			'showitem' => 'l10n_parent, l10n_diffsource,
					title;;paletteCore,;;;;2-2-2, teaser;; ...
		),
	),
```

## Antworten

### [#2](https://www.typo3.net/d/114993-tca-displaycondition-verknuepfung-ueber-zwei-tabellen/2) · karlchen · 2013-06-04 · Beste Antwort

(Text siehe oben unter „Beste Antwort“.)

### [#3](https://www.typo3.net/d/114993-tca-displaycondition-verknuepfung-ueber-zwei-tabellen/3) · Unbekannter Benutzer · 2013-06-05

Vielen Dank für den Tip!
Werde ich mir genauer anschauen und mich daran versuchen.

### [#4](https://www.typo3.net/d/114993-tca-displaycondition-verknuepfung-ueber-zwei-tabellen/4) · Unbekannter Benutzer · 2013-06-05

Ich hab mir das jetzt mal angeschaut.

So wie ich das verstehe, kann ich darüber aber auch nicht ein Feld einer anderen Tabelle ausblenden.
Zumindest in der news-Extension werden auch "nur" Felder aktiviert und deaktiviert die Teil der Tabelle tx_news_domain_model sind. Sprich ich könnte sagen, das je nach Auswahl, Bilder angezeigt werden oder eben nicht. Ich könnte aber nicht sagen, dass die Caption für die Bilder - abhängig vom gewählten news-type - angezeigt werden oder eben nicht.

Das Feld welches ich ausblenden möchte ist im TCA für Bilder, der Selector der das Steuert (template) ist aber im TCA für den Clienten.
Daher geht das nicht oder habe ich gerade einen Gedankenfehler?

---

Quelle: „TCA displayCondition - Verknüpfung über zwei Tabellen“, typo3.net, https://www.typo3.net/d/114993-tca-displaycondition-verknuepfung-ueber-zwei-tabellen
Beiträge von Mitgliedern des Forums. Bitte mit Link auf die Diskussion zitieren.
