[Frage] N:M Relation mit FE_Users [Gelöst]

  • 0 x
    18 Beiträge
    0 Hilfreiche Beiträge
    22. 06. 2021, 13:17

    Hallo zusammen,

    ich habe ein paar Probleme mit der Erstellung meiner Extension.

    Ich habe ein Repository, ein Model und ein Controller "Software". In diesem Model greife ich auf "FE_Users" zurück. Eine Software kann mehrere Mitarbeiter (FE_Users) zugewiesen bekommen und im Umkehrschluss kann ein FE_User auch mehrere Software zugewiesen bekommen. Da es sich hier um eine N:M-Relation handelt, habe ich dafür eine neue Datenbanktabelle angelegt:

    [code]CREATE TABLE tx_demoext_domain_model_software_employees (
    uid_local int(11) DEFAULT '0' NOT NULL,
    uid_foreign int(11) DEFAULT '0' NOT NULL,
    sorting int(11) DEFAULT '0' NOT NULL,
    sorting_foreign int(11) DEFAULT '0' NOT NULL,

    KEY uid_local (uid_local),
    KEY uid_foreign (uid_foreign)
    );
    [/code]

    und meine Datenbanktabelle für die Software um folgendes ergänzt:
    [code]employees int(11) DEFAULT '0' NOT NULL,[/code]

    und die Datenbanktabelle "fe_users" um folgendes:
    [code]software int(11) DEFAULT '0' NOT NULL,[/code]

    Das TCA für die Software für dieses Feld sieht so aus:
    [code]'employees' => [
    'config' => [
    'type' => 'select',
    'renderType' => 'selectMultipleSideBySide',
    'foreign_table' => 'fe_users',
    'MM' => 'tx_demoext_domain_model_software_employees',
    ],
    ],[/code]
    und die Erweiterung der FE_Users wie folgt:
    [code]'software' => [
    'config' => [
    'type' => 'select',
    'renderType' => 'selectMultipleSideBySide',
    'foreign_table' => 'tx_demoext_domain_model_software',
    'MM' => 'tx_demoext_domain_model_software_employees',
    'MM_opposite_field' => 'employees'
    ],
    ],[/code]
    Soweit sieht das auch okay aus, wenn ich einen neuen Datensatz für "Software" anlege, kann ich meine hinterlegten Benutzer dort auswählen. Wähle ich einen Benutzer aus, setzt er den Wert für "Employee" auf "1", wähle ich noch einen zweiten Benutzer aus, dann auf "2" usw.

    Debugge ich das Ganze im Frontend über <f:debug>{_all}</f:debug>, sehe ich nun im Datensatz, dass er auf das ObjectStorage zugreift und dort kann ich mir die entsprechenden Benutzer auch anzeigen lassen (mit einem Klick auf das + Symbol).

    Gehe ich nun den anderen Weg und erstelle / editiere meinen FE_User, zeigt er mir auch richtig die ganzen Datensätze von der Software zum auswählen an. Erstelle ich einen Benutzer, wähle eine Software aus und speichere und schau nun in das Debugging, sehe ich auch das er ein weiteres Objekt bei Employee angelegt hat, allerdings lässt sich dieses Objekt nicht aufklappen.

    Irgendwie scheint die Zuweisung bislang nur über Software zu klappen, nicht über FE_Users.

    Jemand eine Idee?

    Besten Dank.

    Tags: Extbase
  • 0 x
    18 Beiträge
    0 Hilfreiche Beiträge
    23. 06. 2021, 11:24 - Lösung

    Bereits gelöst.

    Scheinbar hat er sich irgendwo verschluckt. Als ich die MM-Tabelle neu angelegt habe, ging es.

    Viele Grüße


  • 1
  • 0 x
    18 Beiträge
    0 Hilfreiche Beiträge
    23. 06. 2021, 11:24

    Bereits gelöst.

    Scheinbar hat er sich irgendwo verschluckt. Als ich die MM-Tabelle neu angelegt habe, ging es.

    Viele Grüße

  • 1