[Frage] Typo3 - "fremde" Tabelle in eigener Extension verwenden. TYPO3-Version: 6.2.7

  • deus deus
    T3PO
    0 x
    12 Beiträge
    0 Hilfreiche Beiträge
    17. 03. 2016, 08:26

    Hallo.
    Ich habe eine neue Extension erstellt und möchte auf bereits bestehende NICHT-Typo3 Tabellen zugreifen.
    Zudem habe ich mit dem Extension-Builder ein neues Model-Object angelegt und bei "Map to existing table" den entsprechenden Tabellennamen eingetragen.
    Ebenso habe ich die Tabelle um folgende Felder erweitert:
    - uid
    - pid
    - crdate
    - tstamp
    - deleted
    - hidden

    Die Tabelle hat schon einen Primary-Key: id
    deswegen habe ich einen BEFORE-INSERT Trigger erstellt, der die uid und die id in sync hält.

    DROP TRIGGER IF EXISTS triggerBeforeInsertCampaign;
    CREATE TRIGGER triggerBeforeInsertCampaign
    BEFORE INSERT ON campaigns
    FOR EACH ROW
    SET NEW.uid = (SELECT id FROM campaigns ORDER BY id DESC LIMIT 1) + 1

    Ebenso habe ich ein neues TCA File Campaign.php erstellt.

    Ich kann nun im Typo3 Backend Neue Datensätze zu der Tabelle hinzufügen.
    Ebenso kann ich im Frontend (listActin) die Datensätze erfolgreich aktualisieren und löschen (deleted wird auf 1 gesetzt).

    Wenn ich nun über das Frontend (newAction, createAction) einen neuen Datensatz anlegen möchte, macht er gar nichts.
    Ich bekomme zwar die Erfolgsmeldung "The object was created..." aber der Datensatz wird NICHT in die Tabelle eingefügt.

    Hat jemand eine Idee?

    Vielen Dank,
    lg


  • 1
  • harald1972 harald197...
    Sternenflotten-Admiral
    0 x
    198 Beiträge
    13 Hilfreiche Beiträge
    21. 03. 2016, 09:26

    Hallo,

    hast du dein Mapping überprüft?
    Du solltest im TS (setup) etwas Dergestaltes haben:

    1. plugin.tx_deineextension.persistence {
    2. storagePid = {$plugin.tx_deineextension.persistence.storagePid}
    3. classes.Tx_Deineextension_Domain_Model_Objectname.mapping.tableName = bestehender_tabellenname
    4. }

    ...nur ne Idee

    Gruß, Harald.

  • aemka aemka
    Jedi-Ratsmitglied
    0 x
    562 Beiträge
    9 Hilfreiche Beiträge
    22. 03. 2016, 15:05

    Das Mapping hilft dir auch nichts, wenn die externe Tabelle nicht im TYPO3 TCA eingetragen ist. Das würde ich noch nachholen und dann sollte das auch klappen.

    http://www.aemka.de/

  • harald1972 harald197...
    Sternenflotten-Admiral
    0 x
    198 Beiträge
    13 Hilfreiche Beiträge
    25. 03. 2016, 08:48

    auch ne gute Idee ;)

    Das wäre dann wohl hier:

    1. 'config' => Array (
    2. 'type' => 'select',
    3. 'foreign_class' => 'Tx_Deineextension_Domain_Model_Objectname',
    4. 'foreign_table' => 'bestehender_tabellenname',
    5. ...

    frohe Ostern!

  • aemka aemka
    Jedi-Ratsmitglied
    0 x
    562 Beiträge
    9 Hilfreiche Beiträge
    06. 04. 2016, 19:43

    Nein, die komplette Tabelle, auf die zugegriffen werden soll, muss einen eigenen TCA Eintrag kriegen.

    http://www.aemka.de/

  • 1