Ich möchte auf der Detailseite eine Liste mit Daten aus einer Kindtabelle ausgeben. Könnte mit jemand verraten, wie die entsprechende SQL-Abfrage für den hierzu benötigten Filter lauten müsste?
Vielen Dank schon mal vorweg.
Gruß Karl
Ich möchte auf der Detailseite eine Liste mit Daten aus einer Kindtabelle ausgeben. Könnte mit jemand verraten, wie die entsprechende SQL-Abfrage für den hierzu benötigten Filter lauten müsste?
Vielen Dank schon mal vorweg.
Gruß Karl
Hallo Karl,
mal grob gesagt: Du Filterst die Kind Elemente mit Hilfe des Alias von dem Item, was du in der Detailseite eh schon darstellst.
Hier mal eine Abfrage, wie ich die nutze bei einem translatedtext (also Mehrsprachig):
Du müsstest da eigentlich nur die Tabellen anpassen für dich.Code:SELECT id FROM mm_kind_produkt WHERE pid IN ( SELECT item_id FROM tl_metamodel_translatedtext WHERE value={{param::get?name=auto_item}})
Viele Grüße
Contao Pool | C-C-A | MetaModels | [Internetseite -> Mediendepot Ruhr]
[Arbeitet bei -> Paus Design & Medien]
"I can EXPLAIN it to you, but I can't UNDERSTAND it for you."
Hallo MacKP,
vielen Dank zunächst. Klingt nachvollziehbar. Funktioniert aber leider nicht:
FehlermeldungCode:SELECT id FROM mm_kind WHERE pid IN ( SELECT item_id FROM mm_papa WHERE value={{param::get?name=auto_item}})
Fatal error: Uncaught exception Exception with message Query error: Unknown column 'item_id' in 'field list' (SELECT id FROM mm_kind WHERE pid IN ( SELECT item_id FROM mm_papa WHERE value='berlin')) thrown in system/modules/core/library/Contao/Database/Statement.php on line 283
Hast Du eine Idee, was ich falsch gemacht habe?
Liebe Grüße
Karl
Hallo Karl S.,
du musst bei dir einfach:
Also nur SELECT id, da bei dir die Spalte an der Stelle id heißt.Code:SELECT id FROM mm_kind WHERE pid IN ( SELECT id FROM mm_papa WHERE value={{param::get?name=auto_item}})
Bei mir wars eben wegen Übersetzungen item_id ;-)
Viele Grüße
Contao Pool | C-C-A | MetaModels | [Internetseite -> Mediendepot Ruhr]
[Arbeitet bei -> Paus Design & Medien]
"I can EXPLAIN it to you, but I can't UNDERSTAND it for you."
Abermals Dank, aber das geht leider auch nicht:
Fatal error: Uncaught exception Exception with message Query error: Unknown column 'value' in 'where clause' (SELECT id FROM mm_kind WHERE pid IN ( SELECT id FROM mm_papa WHERE value='berlin')) thrown in system/modules/core/library/Contao/Database/Statement.php on line 283
Weiterhin um Rat dankbar
Gruß Karl
MacKP,
Du bist mein Held des Tages... vielen, vielen Dank.
»alias« statt »value«... daran hat’s gelegen...
Viele GrüßeCode:alias={{param::get?name=auto_item}})
Karl
öh.. Kannst du mal nen Screen schicken von den beiden Tabellen in phpmyadmin?
So das man 1. die Struktur und 2. auch wenigstens einen Eintrag sehen kann?
Viele Grüße
Ah, ok xD
Für sowas ist es immer gut, wenn man in phpmyadmin mal schaut, wie die Tabellen aufgebaut sind. Dann sieht man sowas schneller selbst und braucht nicht so wild rumraten ;-)
Contao Pool | C-C-A | MetaModels | [Internetseite -> Mediendepot Ruhr]
[Arbeitet bei -> Paus Design & Medien]
"I can EXPLAIN it to you, but I can't UNDERSTAND it for you."
OK, soweit so gut... funktioniert bestens... jetzt würde ich gerne noch bei der Listen-Darstellung der Daten aus der Kindtabelle jeweils den Wert eines Text-Feldes »name« aus dem pid-Datensatz der Elterntabelle anzeigen. Welches Template müsste man dazu wie verändern? Geht das, und wenn ja: wie?
Für die Hilfe bereits ein herzliches Dankeschön vorweg.
Karl
Geändert von Karl S. (27.06.2014 um 07:15 Uhr)
Hmm du hast ja normalerweise in der URL den Alias vom Elternelement um die Liste der Kinder anzuzeigen. Also müsstest du nur ein Listenmodul vom Elternelement ausgeben, was auf diese URL reagiert. Oder brauchst du das da anders?
Viele Grüße
Contao Pool | C-C-A | MetaModels | [Internetseite -> Mediendepot Ruhr]
[Arbeitet bei -> Paus Design & Medien]
"I can EXPLAIN it to you, but I can't UNDERSTAND it for you."
Wenn ich nur die Daten der Kindtabelle aufliste habe ich keinen Alias der Elterntabelle in der URL. Alle Kinder haben ja in der Summe viele Eltern. Ich will aber bei jedem »Kind« den Namen vom »Papa« mit ausgeben.
Geändert von Karl S. (27.06.2014 um 09:41 Uhr)
Ungetesteter Pseudocode aus dem Gedaechtnis, sollte dir aber die Richtung vermitteln:
PHP-Code:
// Annahme: wir sind in metamodel_prerendered.html5 von "mm_kind".
$kind = $arrItem['raw'];
$papas = \MetaModels\Factory::getByTableName('mm_papas');
$papa = $papas->findById($kind['pid']);
echo $papa->parseAttribute('name');
Bedenke stets: Wenn Du ungenaue oder unzureichende Angaben machst, so koennte dies die Bearbeitung deiner Frage endlos verzoegern (oder sogar dazu fyhren, dass ich zu viel nachdenken muss und die Antwort vergesse!). Kein Support per PN.
Danke für den Tipp xtra,
aber ich bekomme es mit meinen doch recht bruchstückhaften Code-Kenntnissen nicht hin. Kann mir jemand diesbezüglich etwas detaillierter unter die Arme greifen?
Gruß Karl
Hallo Karl S.,
wie sieht denn dein Template aktuell aus und was funktioniert da nicht?
Ist immer etwas schwierig so auf dem Trockenen ohne genaue Infos sowas zusammenzubasteln...
Viele Grüße
Contao Pool | C-C-A | MetaModels | [Internetseite -> Mediendepot Ruhr]
[Arbeitet bei -> Paus Design & Medien]
"I can EXPLAIN it to you, but I can't UNDERSTAND it for you."
Ich bekomme folgende Fehlermeldung, egal an welche Stelle ich die Zeilen von xtra reinkopiere:
Fatal error: Call to undefined method MetaModels\Factory::getByTableName() in /.../domain.de/templates/metamodel_prerendered_xtra.html5 on line 12
Sorry, war wie gesagt aus dem Gedaechtnis... bitte in Zukunft die Interfaces von MetaModels lesen, dann haettest es gefunden.
So sollte es gehen.PHP-Code:
// Annahme: wir sind in metamodel_prerendered.html5 von "mm_kind".
$kind = $arrItem['raw'];
$papas = \MetaModels\Factory::byTableName('mm_papas');
$papa = $papas->findById($kind['pid']);
echo $papa->parseAttribute('name');
Bedenke stets: Wenn Du ungenaue oder unzureichende Angaben machst, so koennte dies die Bearbeitung deiner Frage endlos verzoegern (oder sogar dazu fyhren, dass ich zu viel nachdenken muss und die Antwort vergesse!). Kein Support per PN.
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
Lesezeichen