[TYPO3-mvc] Extend existing tables

Thomas "Thasmo" Deinhamer thasmo at gmail.com
Mon Feb 21 17:53:12 CET 2011


arno dudek wrote:
> Nur wird noch immer die Basisklasse geladen. Ich vermute mal, dass ein
> Modell nicht per inject geladen wird und diese Konfiguration nicht greift.
>
> Oder kurz gefragt: Wie kann man eine Modell-Klasse einer Extension
> erweitern?
>
> Zusatz: Das entspricht nicht dem
> "Tx_Extbase_Domain_Model_FrontendUser"-Beispiel. Da dort die Daten meist
> in der Erweiterung verarbeitet werden.

Hallo,

hab bis jetzt auch nur Models in den Extensions erweitert und dort
auch verwendet. Ein Mapping sieht, mit "single table inheritance",
sprich einem Objekt das in verschiedenen Typen existiert, so bei mir aus:

config.tx_extbase {
   persistence {
     classes {
       Tx_HypeDirectory_Domain_Model_Contact {
         mapping {
           tableName = tx_hypedirectory_domain_model_contact
         }

         subclasses {
           Person = Tx_HypeDirectory_Domain_Model_Contact_Person
           Corporation = Tx_HypeDirectory_Domain_Model_Contact_Corporation
         }

         columns {
           country.foreignClass = Tx_Hype_Domain_Model_StaticCountry
         }
       }

       Tx_HypeDirectory_Domain_Model_Contact_Person < 
.Tx_HypeDirectory_Domain_Model_Contact
       Tx_HypeDirectory_Domain_Model_Contact_Person {
         mapping {
           recordType = person
         }

         subclasses >
       }
     }
   }
}

Wichtig ist, dass du diese Konfiguration auf config.tx_extbase direkt
anwendest, damit Extbase diese Konfiguration unabhängig von der gerade
ausgeführten Extension findet/verwenden kann.

Was leider noch nicht geht, was dir  aber - so verstehe ich das jetzt - 
vermutlich noch besser weiterhelfen könnte, sind diese "Mixins".

Dazu gab's auch schon mind. einen Thread in der Mailingliste.

Vielleicht hilft dir was weiter.

LG,
Thomas


More information about the TYPO3-project-typo3v4mvc mailing list