[Frage] MM Relations - Zwei Tabellen miteinander verknüpfen TYPO3-Version: 8.7.12

  • dennismetz dennismet...
    Typ im Roten Hemd
    0 x
    2 Beiträge
    0 Hilfreiche Beiträge
    20. 04. 2018, 21:01

    Hallo Community,

    ich stehe aktuell vor einem Problem wo ich einfach nicht weiterkomme.

    Folgendes:

    Ich habe eine Tabelle "Personen" und eine Tabelle "Studiengänge".

    Eine Person soll mehreren Studiengängen zugeordnet werden können ("In" der Person kann man alle verfügbaren Studiengänge wählen, das klappt soweit auch, auch im Frontend).

    Im Studiengang selbst soll man die Person aber nicht wählen können/müssen - das wäre doppelte arbeit.

    - Um etwas weiter auszuholen warum: Es gibt eine Personendetailseite auf der alle Infos inkl. Studiengang stehen - den bekomme ich auch sauber ausgelesen. Die Studiengangsdetailseite soll anhand der Informationen (Studiengang ist Person XY zugeordnet) dann auch die Möglichkeit bieten die jeweilige Person anzuzeigen - hier scheitert es aber weil ich (im Augenblick) nicht weiß wie ich diese Person auslesen kann.

    Ich bin mir nicht sicher was ich alles an Infos mitschicken soll bzw. was wichtig ist - wenn etwas fehlt reiche ich es auch gerne nach.

    TCA Ausschnitt Person
    [code]'studycourse' => [
    'exclude' => false,
    'label' => 'LLL:EXT:...studycourse',
    'config' => [
    'type' => 'select',
    'renderType' => 'selectSingleBox',
    'foreign_table' => 'tx_extension_domain_model_studyfinder',
    'MM' => 'tx_extension_persons_studyfinder_mm',
    'MM_opposite_field' => 'persons',
    ],
    ],
    [/code]

    Im TCA - Studiengang gibt es kein Auswahlfeld.

    Wie muss ich vorgehen damit ich in der Tabelle "Studiengang" z.B. die UID der Person bekomme?


  • 1
  • pstranghoener pstrangho...
    Die Macht
    0 x
    534 Beiträge
    26 Hilfreiche Beiträge
    25. 04. 2018, 08:18

    Hey Dennis,
    ich markiere deine Frage mal als Wichtig und hoffe, dass du schnell eine Antwort bekommst.

    Grüße
    Philipp

  • 0 x
    18 Beiträge
    0 Hilfreiche Beiträge
    25. 04. 2018, 10:45

    Hallo Denis,

    geht es dir um die Anzeige im FE? Dann wäre das Problem vielleicht so ähnlich wie meins: https://www.typo3.net/forum/thematik/zeige/thema/126711/?tx_typo3forum_pi1%5BshowForm%5D=0&cHash=3e4dce76826758a78d456e1a579350f3

    Ins PersonRepository müsste eine Methode findByStudycourse() rein, die alle Personen findet, denen ein bestimmter Studiengang zugeordnet ist.

    sehe ich das richtig so?

    Grüße
    gidouille

  • 0 x
    18 Beiträge
    0 Hilfreiche Beiträge
    25. 04. 2018, 11:02

    Das musste dann ungefähr so aussehen (in PersonRepository):

    [code]

    public function findByStudycourse() {
    $query = $this->createQuery();
    $query->matching($query->equals('person.studycourse', 'settings.mycourse'));
    return $query->execute();
    }
    [/code]

    aber genau das funktioniert bei mir eben nicht.

    Wenn es funktionieren würde, käme ein array aller Personen zurück, denen ein Studiengang der in settings.mycourse festgesetzt wurde, zugeordnet ist.

    Grüße
    gidouille

  • freeatweb freeatweb
    Jedi-Meister
    0 x
    267 Beiträge
    4 Hilfreiche Beiträge
    25. 04. 2018, 13:56

    Hallo,

    einfach die Logik umdrehen.

    1.) Actions (z.b. List, Show) für Studiengänge anlegen
    2.) für diese Actions FLUID Templates anlegen

    Im FLUID-Template der detail-Ansicht die ganzen Personen zum Studiengang in einer for-schleife ausgeben.

    z.B.

    <for each="{studiengaenge.person}" as="person}">
    Vorname: {person.vorname}
    usw. usf.
    </f:for>

  • 0 x
    18 Beiträge
    0 Hilfreiche Beiträge
    22. 06. 2018, 16:48

    Hallo Dennis,
    hast du das Problem gelöst?

    Grüße
    gidouille

  • 1