Extension Builder - Map to existing table

  • redbug redbug
    T3PO
    0 x
    16 Beiträge
    0 Hilfreiche Beiträge
    15. 06. 2012, 22:16

    Hi zusammen,

    ich bin gerade dabei mich in Extbase einzuarbeiten und habe mir mit dem "Extension Builder" eine ganz einfache Extension erstellt.
    Screenshot aus dem Extension Builder siehe Anhang...

    in der Datei Resources/Private/Templates/Testliste/Show.html steht folgendes:

    1. <f:render partial="Testliste/Properties" arguments="{testliste:testliste}" />

    und meine Datei Resources/Private/Partials/Testliste/Properties.html sieht wie folgt aus:

    1. <table class="tx-test2" >
    2. <tr>
    3. <td>
    4. <f:translate key="tx_test2_domain_model_testliste.titel" />
    5. </td>
    6. <td>
    7. {testliste.titel}
    8. <ul>
    9. <f:for each="{testliste.items}" as="item">
    10. <li>{item.uid}</li>
    11. </f:for>
    12. </ul>
    13. </td>
    14. </tr>
    15. </table>

    jedoch kann ich nur auf die uid und pid der anderen Tabelle zugreifen :( kann mir jemand weiterhlefen wie ich auf alle Felder der Tabelle zugreifen kann?

    Bin über jeden Tipp dankbar!

    Gruß redbug

    Anhänge (1)
    extensionbuilder.png image/png 0,00 B 301 heruntergeladen

  • 1
  • igorshmigor igorshmig...
    Jedi-Ratsmitglied
    0 x
    941 Beiträge
    0 Hilfreiche Beiträge
    16. 06. 2012, 13:44

    Ich weiß es nicht, da ich es selbst noch nicht probiert habe, aber ich könnte mir vorstellen, dass Du die Felder der externen Tabelle, die Du abrufen möchtest, bei den Properties hinzufügen musst. Hast Du das mal probiert?
    Vielleicht solltest Du auch ein Häkchen bei aggregate root setzen.
    Beispiel aus dem Wiki:
    http://wiki.typo3.org/File:Extending-Map-Models.png

  • redbug redbug
    T3PO
    0 x
    16 Beiträge
    0 Hilfreiche Beiträge
    18. 06. 2012, 16:24

    Also ich habe es hinbekommen, vielleicht braucht es ja mal jemand:

    ich hoffe ich habe nichts vergessen:

    1. Im Extensionbuilder die benötigten Properties für die Felder der externen Tabelle anlegen
    2. über das setup.txt die externen Felder auf die eigenen Properties mappen

    1. plugin.tx_meineExtension {
    2. view {
    3. templateRootPath = {$plugin.tx_meineExtension.view.templateRootPath}
    4. partialRootPath = {$plugin.tx_meineExtension.view.partialRootPath}
    5. layoutRootPath = {$plugin.tx_meineExtension.view.layoutRootPath}
    6. }
    7. persistence {
    8. storagePid = {$plugin.tx_meineExtension.persistence.storagePid}
    9. classes {
    10. # hier Das Modell der Relation
    11. Tx_MeineExtension_Domain_Model_MeinItem {
    12. mapping {
    13. # wenn hier die Tabelle angegeben wird funktionierte bei mir das mapping nicht mehr!
    14. # wenn die Tabelle angegeben ist, werden alle Properties zugeordnet die den identischen Namen in der Tablle besitzen - ein mapping ist dann nicht nötig!!
    15. # jedoch waren bei mir Tabellenfelder mit Unterstich vorhanden und dadurch ein automatisches mappen mit den gleichen Werten nicht möglich da der Extension Builder keine Unterstriche in den Properties zulässt
    16.  
    17. # tableName = tx_meine_tabelle
    18. columns {
    19. feldAusDerDB1.mapOnProperty = meinPropertieFeld1
    20. feldAusDerDB2.mapOnProperty = meinPropertieFeld2
    21. feldAusDerDB3.mapOnProperty = meinPropertieFeld3
    22. }
    23. }
    24. }
    25. }
    26.  
    27. }
    28. }

    3. die Datei Resources/Private/Partials/Testliste/Properties.html anpassen

    Ich hoffe es ist einigermaßen verständlich, wenn nicht bitte melden!

    Gruß redbug

  • 1