Zum Inhalt springen

IRRE Update-Fehler beim speichern der Kindelemente

Erstellt am 23. April 2009 · 3 Antworten · letzte Antwort am 9. Juni 2009

Tags: Frage

flashsilver ·

Hallo zusammen,

hab mich lange nicht mehr gemeldet. Liegt auch daran, das ich soweit meine Erfahrungen in TYPO3 gesammelt habe. Ich habe mich jetzt mal mit IRRE beschäftigt und soweit nach der Anleitung http://wiki.typo3.org/Inline_Relational_Record_Editing_1:n eingerichtet. Mein Problem ist, das ich immer nur ein Kindelement (textannotation) anlegen kann. Egal wieviele Elternelemente(mediaelement) ich habe. Dann erscheint folgende SQL-Fehlermeldung:

t3lib_DB::exec_UPDATEquery
Duplicate entry '1' for key 1
UPDATE tx_extkey_media_textannotation
SET
parentid='22',
parenttable='tx_extkey_media_element',
uid='1'
WHERE
uid=2

Meine SQL-Statements sehen wie folgt aus:
Elternelement(medaiobject)

CREATE TABLE tx_extkey_media_element (
uid int(11) NOT NULL auto_increment,
....
textanno int(11) DEFAULT '0' NOT NULL,
....
)

Kindelement(textanno)

CREATE TABLE tx_extkey_media_textannotation (
uid int(11) NOT NULL auto_increment,
....
headline tinytext NOT NULL,
subline text,
parentid tinytext,
parenttable tinytext,
....
)

Das dazugehörigede TCA aus dem Elternelement sieht solgendermaßen aus:

$TCA['tx_extkey_media_element'] = array (
    ....
    'textanno' => Array (		
	'exclude' => 1,		
	'label' => 'LLL:EXT:extkey/locallang_db.xml:tx_extkey_media_element.textanno',		
	'config' => Array (
		'type' => 'inline',
		'foreign_table' => 'tx_extkey_media_textannotation',
                'foreign_field' => 'parentid',
        	'foreign_table_field' => 'parenttable',
        	'maxitems' => 2,
        	'appearance' => array(
        		'collapseAll' => true,
        		'expandSingle' => true,
        		'useSortable' => true
        	),
	)
),
.....

Das aus dem Kind wie folgt:

$TCA['tx_extkey_media_textannotation'] = array (
    ....
    'headline' => array (		
	'exclude' => 1,		
	'label' => 'LLL:EXT:extkey/locallang_db.xml:tx_extkey_media_textannotation.headline',		
	'config' => array (
		'type' => 'input',	
		'size' => '30',	
		'eval' => 'required',
		)
	),
    'subline' => array (		
	'exclude' => 1,		
	'label' => 'LLL:EXT:extkey/locallang_db.xml:tx_extkey_media_textannotation.subline',		
	'config' => array (
		'type' => 'text',
		'cols' => '30',	
		'rows' => '3',
		)
	),
    'parentid' => array (        
        'config' => array (
            'type' => 'passthrough',
            )
        ),
    'parenttable' => array (        
        'config' => array (
            'type' => 'passthrough',
        )
    ),
....

Ich habe alles mit dem Kickstarter in der TYPO3 Version 4.2.5 erstellt. Ich kann keine Fehler meinerseits finden. Vlt kann einer von euch es auf anhieb sagen, was ich falsch gemacht haben soll :o

smiLLe ·

genau dieselbe Meldung erhalte ich auch! (Also die SQL-Meldung).

Hast du das Problem lösen können bzw. hat jemand eine Problemlösung?

flashsilver ·

Leider noch nicht. Werde erst nach Pfingsten Zeit finden, mich mal wieder mit dem Problem zu befassen. Ich meld mich dann nochmal. Wenn Du es vor mir gelöst, wäre nett wenn Du es hier posten könntest. [EDIT] Ich habe zwischenzeitlich auf die Version 4.2.6 geupdatet, brachte aber auch nichts. Dachte es könnte am Core liegen. Werde mir nochmal das Bsp (Hoter-irre) zu diesem Thema genauer angucken.

viele grüße

flashsilver ·

So habe das Problem beheben können. Bei mir lag es an der Einstellung vom Datenbankfeld(TCA) textanno in dem Elternelement tx_extkey_media_element. Ich habe es mehr oder weniger durch ausprobieren rausbekommen, wie die richtige Einstellung ist.

Hier der geänderte TCA vom Datenbankfeld des Elternelement (Zeile 11-14):

      $TCA['tx_extkey_media_element'] = array (
          ....
          'textanno' => Array (              
              'exclude' => 1,  
              'label' => 'LLL:EXT:extkey/locallang_db.xml:tx_extkey_media_element.textanno',   
              'config' => Array (
                      'type' => 'inline',
                      'foreign_table' => 'tx_extkey_media_textannotation',
                      'foreign_field' => 'parentid',
                      'foreign_table_field' => 'parenttable',
                        'foreign_label' => 'headline',
		        'foreign_sortby' => 'sorting',
		        'size' => 10,
			'minitems' => 0,
                      'maxitems' => 2,
                      'appearance' => array(
                              'collapseAll' => true,
                              'expandSingle' => true,
                              'useSortable' => true
                    ),
          )
),
.....