TCA: unique (einzigartigen) String definieren?

  • maxhb maxhb
    Flash Gordon
    0 x
    2148 Beiträge
    0 Hilfreiche Beiträge
    22. 09. 2011, 20:23

    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):

    1. 'aktenzeichen' => array (
    2. 'exclude' => 0,
    3. 'label' => 'LLL:EXT:qcom_bfh_urteile/locallang_db.xml:tx_qcombfhurteile_aktenzeichen.aktenzeichen',
    4. 'config' => array (
    5. 'type' => 'input',
    6. 'size' => '30',
    7. 'max' => '100',
    8. 'eval' => 'required,unique',
    9. )
    10. ),

    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


  • 1
  • maxhb maxhb
    Flash Gordon
    0 x
    2148 Beiträge
    0 Hilfreiche Beiträge
    22. 09. 2011, 22:47

    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

  • jansch jansch
    Padawan
    0 x
    31 Beiträge
    2 Hilfreiche Beiträge
    09. 02. 2012, 18:44

    Hi Maxhb,

    ich hatte das gleiche Problem und habe es jetzt mittels eigener eval Funktion gelöst. Hab's in folgendem Artikel beschrieben:
    http://alumnitypo3.blogspot.com/2012/02/felogin-erweitern-username-und.html
    dort der erste Teil.

    ich finde das aber auch nicht 100%ig sauber und würde empfehlen es im Code und in der Datenbank mittels Index lösen.

  • maxhb maxhb
    Flash Gordon
    0 x
    2148 Beiträge
    0 Hilfreiche Beiträge
    10. 02. 2012, 13:21

    @jansch
    Danke für den Hinweis!

    CU
    maxhb

  • 1