[TYPO3-german] DRINGEND! - Nach dem Anpassen einer Extension sind neue Felder im Fluid Template nicht verfügbar

Johannes C. Laxander jc at laxander.com
Tue Jan 3 20:37:59 CET 2017


Hallo Renzo,

vielen Dank für deine ausführliche Erklärung, mit der ich mein Problem lösen konnte! :) 
Mit dieser Konfiguration hat es jetzt geklappt:

config.tx_extbase.persistence.classes {
	Dan\Jobfair\Domain\Model\Job {
		subclasses {
			0 = Jcl\JobfairExtended\Domain\Model\JobExtended
		}
	}
	Jcl\JobfairExtended\Domain\Model\JobExtended {
		mapping {
			tableName = tx_jobfair_domain_model_job
			recordType = 0
		}
	}
}

> Damit das funktioniert, muss in der Tabelle1 aber ein Feld zum Speichern des
> recordType vorhanden sein (tx_extbase_type varchar(255) DEFAULT ''
> NOT NULL) und ein entsprechender TCA-Eintrag (record_type).

Habe ich nachträglich definiert, hat gefehlt. Macht man üblicherweise wohl nicht, wenn es nur einen recordType gibt, oder?
 
Schöne Grüße, Johannes.


> -----Ursprüngliche Nachricht-----
> Von: typo3-german-bounces at lists.typo3.org [mailto:typo3-german-
> bounces at lists.typo3.org] Im Auftrag von Renzo Bauen
> Gesendet: Montag, 2. Januar 2017 18:43
> An: typo3-german at lists.typo3.org
> Betreff: Re: [TYPO3-german] DRINGEND! - Nach dem Anpassen einer
> Extension sind neue Felder im Fluid Template nicht verfügbar
> 
> Hallo Johannes
> 
> von mir aus gesehen, ist es fast korrekt.
> Das "sublcassen" sollte eigentlich dazu dienen, die beiden Klassen
> miteinander zu verbinden.
> Wichtig ist zu wissen, dass in einer und der selben Tabelle verschiedenen
> Typen von Datensätzen gespeichert werden können, d.h.
> Datensätze, die mit verschiedenen Models erstellt und bearbeitet werden.
> 
> In Deinem Fall hast Du ja das Originalmodel erweitert, die Datensätze aus
> beiden Models werden aber in der selben Tabelle gespeichert. D.h. du hast
> folgende Situation:
> 
> Die Klasse1 ist die Originalklasse mit dem Recordtype1 und Table1, die
> ErweiterteKlasse2 ist die Erweiterung zur Klasse1 mit dem Recordtype2 (die
> zusätzlichen Felder sind ebenfalls in Tabelle1 definiert)
> 
> Dann müsste sowas definiert werden:
> 
> persistence.classes {
>     Klasse1 {
>         subclasses { Recordtype2 = ErweiterteKlasse2}
>     }
>     ErweiterteKlasse2 {
>         mapping {
>             tableName = Tabelle1
>             recordType = Recordtype2
>         }
>     }
> }
> 
> Damit wird erreicht, dass wenn in der Tabelle1 ein Record mit
> Recordtype2 vorhanden ist, dieser mit dem Model der ExtendetKlasse2
> bearbeitet wird (d.h. inkl. die zusätzlichen Felder).
> Wird in der Tabelle1 ein Recordtype1 gefunden, wird dieser mit der
> Originaldefinition, d.h. mit dem Model der Klasse1 bearbeitet (d.h. ohne die
> zusätzlichen Felder).
> 
> Damit das funktioniert, muss in der Tabelle1 aber ein Feld zum Speichern des
> recordType vorhanden sein (tx_extbase_type varchar(255) DEFAULT ''
> NOT NULL) und ein entsprechender TCA-Eintrag (record_type).
> 
> Wenn man alle Records in der Tabelle1 als mit der Erweiterung bearbeiten
> möchte, kann man anstatt "Recotdtype2" auch "0" (das ist der Default
> Recordtype, entspricht also Recordtype1) schreiben.
> 
> Mehr dazu findest Du im Buch "TYPO3 Extbase" von Patrick Lohbacher...
> 
> Beste Grüsse, Renzo



More information about the TYPO3-german mailing list