Ergebnis 1 bis 8 von 8

Thema: Liste von Kindern Attribute des Elternelements ausgeben

  1. #1
    Contao-Fan
    Registriert seit
    20.10.2014.
    Beiträge
    485

    Standard Liste von Kindern Attribute des Elternelements ausgeben

    Hallo zusammen,
    ich habe eine Liste von von Datensätzen aus mm_child von denen jeder ein Elternelement aus mm_parent hat.
    Nun möchte ich in jedem Datensatz von mm_child Attribute des jeweiligen Elternelements ausgeben (pid lässt sich ja einfach ausgeben)
    Wie mach ich das am einfachsten? Über die Inferfaces https://metamodels.readthedocs.io/de...etamodels.html oder gibt es einen einfacheren Weg?

  2. #2
    Contao-Urgestein Avatar von zonky
    Registriert seit
    19.03.2010.
    Ort
    Berlin, Rdf
    Beiträge
    9.719
    User beschenken
    Wunschliste

    Standard

    Zitat Zitat von marcohe Beitrag anzeigen
    Wie mach ich das am einfachsten? Über die Inferfaces https://metamodels.readthedocs.io/de...etamodels.html oder gibt es einen einfacheren Weg?
    Aktuell leider nicht. Das Kind-Model weiß per se nicht, wer sein Elternteil ist - nur durch die gesetzte pid könnte das der Fall sein, ein Kindmodel darzustellen... sicher ist das nicht (siehe Hierarchische Darstellung)

    Der Weg geht über eine API-Abfrage - siehe Handbuch oder Beispiele + Code aus dem Vortrag zur CC23

    Btw: es gibt auch den Filter-Parent um Kinder nach Eigenschaften der Elternelemente zu filtern.

  3. #3
    Contao-Fan
    Registriert seit
    20.10.2014.
    Beiträge
    485

    Standard

    Zitat Zitat von zonky Beitrag anzeigen
    Aktuell leider nicht. Das Kind-Model weiß per se nicht, wer sein Elternteil ist - nur durch die gesetzte pid könnte das der Fall sein, ein Kindmodel darzustellen... sicher ist das nicht (siehe Hierarchische Darstellung)
    Schade eigentlich. Wenn ich dem Kind ein Attribut SELECT auf das Elternteil gebe wäre es wiederum einfach. Aber das ist ja doppelt und sinnfrei weil die id des Elternteil dann in 2 unterschiedlichen Spalten (pid / select) des kinds vorhanden ist...

    Zitat Zitat von zonky Beitrag anzeigen
    Btw: es gibt auch den Filter-Parent um Kinder nach Eigenschaften der Elternelemente zu filtern.
    Den bräuchte ich im 2. Schritt

  4. #4
    Contao-Urgestein Avatar von zonky
    Registriert seit
    19.03.2010.
    Ort
    Berlin, Rdf
    Beiträge
    9.719
    User beschenken
    Wunschliste

    Standard

    Zitat Zitat von marcohe Beitrag anzeigen
    Wenn ich dem Kind ein Attribut SELECT auf das Elternteil gebe wäre es wiederum einfach. Aber das ist ja doppelt und sinnfrei weil die id des Elternteil dann in 2 unterschiedlichen Spalten (pid / select) des kinds vorhanden ist...
    => das ist korrekt analysiert!

    ... an den vier Zeilen Code sollte es doch wohl nicht scheitern - oder?

  5. #5
    Contao-Fan
    Registriert seit
    20.10.2014.
    Beiträge
    485

    Standard

    Zitat Zitat von zonky Beitrag anzeigen
    => das ist korrekt analysiert!

    ... an den vier Zeilen Code sollte es doch wohl nicht scheitern - oder?
    nein. geht schon

  6. #6
    Contao-Urgestein Avatar von zonky
    Registriert seit
    19.03.2010.
    Ort
    Berlin, Rdf
    Beiträge
    9.719
    User beschenken
    Wunschliste

    Standard

    mit den Snippets vom Vortrag ist das ja nur C&P

    als Filterregel würde ich StaticIdList verwenden:

    PHP-Code:
    $filter->addFilterRule(new \MetaModels\Filter\Rules\StaticIdList([$pid])); 

  7. #7
    Contao-Fan
    Registriert seit
    20.10.2014.
    Beiträge
    485

    Standard

    Zitat Zitat von zonky Beitrag anzeigen
    mit den Snippets vom Vortrag ist das ja nur C&P

    als Filterregel würde ich StaticIdList verwenden:

    PHP-Code:
    $filter->addFilterRule(new \MetaModels\Filter\Rules\StaticIdList([$pid])); 
    PHP-Code:
    <?php
    $modelName 
    'mm_test;
    $factory = $this->getContainer()->get('
    metamodels.factory'); 
    $model = $factory->getMetaModel($modelName);
    $parent = $arrItem['
    raw']['pid'];
    $filter->addFilterRule(new \MetaModels\Filter\Rules\StaticIdList($parent)); 
    $items = $model->findByFilter($filter);
    foreach ($items as $item) {
    echo $item->get('
    name'); }
    ?>
    Copy + Paste Wo liegt der Fehler?

  8. #8
    Contao-Urgestein Avatar von zonky
    Registriert seit
    19.03.2010.
    Ort
    Berlin, Rdf
    Beiträge
    9.719
    User beschenken
    Wunschliste

    Standard

    siehe mein Code:

    PHP-Code:
    ...[$pid
    nennt sich auch StaticIdList - also eine Liste von IDs in Form eines Arrays... mach eine [ ] um Dein $parent

    Wenn Du eine IDE hast, solltest Du mit "Klick" auf die Klasse kommen und sehen können, was die haben will https://github.com/MetaModels/core/b...IdList.php#L43

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

Lesezeichen

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •