MM 2.3 - Filter für ein Select/Tags in der Eingabe - Werte werden nicht gespeichert
Hallo liebe Community,
ich hänge mal wieder an einem MM-Problem.
Ich habe eine Eltern- und eine Kindtabelle sowie eine unabhängige Tabelle, die via Select die Daten aus den beiden anderen Tabellen holt und eben eine Auswahl davon speichern soll. Die Elterntabelle heißt "Kategorien", die Kindtabelle "Unterkategorien". Natürlich möchte ich, dass während der Eingabe nur die relevanten Unterkategorien angezeigt werden soll, sobald eine Kategorie ausgewählt ist.
Nach der Anleitung im MM-Handbuch habe ich in der Tabelle "Unterkategorien" einen Filter erstellt und diesen in der unabhängigen Tabelle beim Select-Attribut für die Unterkategorie ausgewählt. In der Eingabemaske ist beim Attribut "Kategorie" "Absenden bei Änderungen" aktiviert.
Wenn ich jetzt einen neuen Eintrag mache und die Kategorie auswähle, lädt er kurz und zeigt mir dann nur die Unterkategorien an, die zur gewählten Kategorie gehören, soweit so gut.
Allerdings speichert er den Wert für die Unterkategorie nicht. Die Unterkategorie ist ein filterbarer Wert, der Filter in der Listenansicht ist aber leer und wenn ich den Datensatz bearbeite, ist die Unterkategroie ebenfalls leer.
Deaktiviere ich den Filter, wird brav gespeichert und beim Bearbeiten auch die Unterkategorie angezeigt.
Was ist mir durch die Lappen gegangen?
Der Vollständigkeit halber, das ist meine Filter-Regel:
Code:
SELECT unterkategorie.id FROM mm_markt_unterkategorie AS unterkategorie
WHERE unterkategorie.pid IN (
SELECT IF(
{{param::post?name=category}} != 'NULL',
(SELECT GROUP_CONCAT(kategorie.id) FROM mm_markt_kategorie AS kategorie
WHERE kategorie.alias IN ({{param::post?name=category}}) GROUP BY kategorie.pid),
(SELECT GROUP_CONCAT(rel.value_id) AS id FROM tl_metamodel_tag_relation AS rel
WHERE rel.att_id = '18'
AND rel.item_id = SUBSTRING_INDEX({{param::get?name=id}},'::',-1) GROUP BY rel.att_id)
) as id
)
VG
Nicole
Liste der Anhänge anzeigen (Anzahl: 4)
Hi zonky,
entschuldige, habe seit dem Post nicht mehr an der Datenbank weitergearbeitet.
Ja, in der unabhängigen Tabelle habe ich die Unterkategorie als Select eingefügt, genauso wie die Kategorie. Hier ein Screenshot der Konfiguration. 3 weitere zum Problem bei der Eingabe der Daten habe ich angehängt.
Anhang 26838
Ich habe auch mal den Alias auf die ID gestellt, Verhalten ist gleich. Wenn ich im Filter das SELECT nur auf unterkategorie.alias stelle, gibt es keine Auswahl mehr im Feld der Unterkategorie.
Das "SELECT unterkategorie.id, unterkategorie.alias" habe ich aktuell im "Eingabe"-Filter entsprechend eingefügt, merke aber keinen Unterschied zu der Variante nur mit der .id. So sieht der Filter aktuell aus:
Code:
SELECT unterkategorie.id, unterkategorie.alias FROM mm_markt_unterkategorie AS unterkategorie
WHERE unterkategorie.pid IN (
SELECT IF(
{{param::post?name=category}} != 'NULL',
(SELECT GROUP_CONCAT(kategorie.id) FROM mm_markt_kategorie AS kategorie
WHERE kategorie.alias IN ({{param::post?name=category}}) GROUP BY kategorie.pid),
(SELECT GROUP_CONCAT(rel.value_id) AS id FROM tl_metamodel_tag_relation AS rel
WHERE rel.att_id = '18'
AND rel.item_id = SUBSTRING_INDEX({{param::get?name=id}},'::',-1) GROUP BY rel.att_id)
) as id
)
Liste der Anhänge anzeigen (Anzahl: 1)
Danke zonky! Das war der richtige Hinweis! Dass sich das Beispiel nur auf Tags bezieht, hab ich tatsächlich nicht gemerkt.
Ich habe es nun zum Laufen gebracht. Das Skript stelle ich der Vollständigkeit halber mit rein und eine wichtig Änderung musste ich noch machen: In der unabhängigen Tabelle musste ich bei der Kategorie die Alias-Spalte von "alias" auf "id" ändern, damit die Zuordnung mit der pid im Skript klappt. Anhang 26839
Mein "Eigenes SQL"-Filter:
Code:
SELECT unterkategorie.id FROM mm_markt_unterkategorie AS unterkategorie
WHERE IF (
{{param::post?name=category}} != 'NULL',
unterkategorie.pid = {{param::post?name=category}},
unterkategorie.pid = (
SELECT markt.category
FROM mm_markt_maschine AS markt
WHERE markt.id = SUBSTRING_INDEX({{param::get?name=id}},'::',-1)
LIMIT 1
)
)
Again what learned. :D:cool:
LG
Nicole