Zum Inhalt springen

TCA: unique (einzigartigen) String definieren?

Erstellt am 22. September 2011 · 3 Antworten · letzte Antwort am 10. Februar 2012

Tags: Frage

maxhb ·

Hallo,
vielleicht stehe ich gerade auf dem Schlauch, aber ich scheitere gerade daran, in einer Extension ein Stringfeld zu deklarieren, in dem alle Werte jeweils einzigartig sein sollen.

Mein Ansatz (tca.php):

'aktenzeichen' => array (		
	'exclude' => 0,		
	'label' => 'LLL:EXT:qcom_bfh_urteile/locallang_db.xml:tx_qcombfhurteile_aktenzeichen.aktenzeichen',		
	'config' => array (
		'type' => 'input',	
		'size' => '30',	
		'max' => '100',	
		'eval' => 'required,unique',
	)
),

Wie erwartet wird im BE ein Eingabefeld aungezeigt in das man einen String der gewünschten Länge eingeben kann.

Statt aber nun Zeichenketten abzulehnen, die bereits in der DB-Spalte definiert wurde, fügt TYPO3 einfach Zahlen an einen String an, der bereits in einem anderen Datensatz eingegeben wurde. gibt man also z.B. bei zwei Datensätzen in dem Feld den Wert "abc" ein, so wird der Wert des zweiten Datensatzes auf "abc0" geändert.

Damit ist der String dann natürlich "unique", nur entspricht er eben nicht mehr der Eingabe #paralyzed#

Kann man das nicht auch so einstellen, dass die Eingabe eines bereits verwendeten Strings einfach einen Fehler in der Eingabemaske erzeugt?!

Freue mich auf Kommentare
maxhb

maxhb ·

Als Work-Around habe ich jetzt mal das "eval => unique" rausgeworfen und in der DB das Feld auf "unique" gesetzt. Dann gibt's wenigstens eine Fehlermeldung, wenn man einen Wert ein zweites mal hinterlegen möchten.

Geht das nicht auch schöner?

CU
maxhb