Ich wünsche euch einen schönen guten Morgen.
Ich bin neu hier bzw. auch in Extbase & Fluid und habe ein Problem:
Ziel: Die User können von 10 Kategorien auswählen. Dies funktioniert auch.
Einer hat dann zum Beispiel 3 ausgewählt, der andere beispielsweise 5.
Nun, ein User kann sich im Moment anmelden. Dem User möchte ich anbieten
die Kategorien per Formular zu ändern. Anmelden, Kategorien ändern (Checkbox-Liste)
und dann einfach abspeichern und diese sollen dann letztendlich auch in der
mm-Tabelle richtig abgelegt werden.
Ich habe drei Klassen angelegt:
1. Produkte
- Relation zu Kategorie: categories, m:n
- Relation zu User: users, n:1
2. Kategorie
3. User (-> fe_users)
Ich lege nun im Backend zu Testzwecken einige Datensätze an. Es funktioniert auch.
Ich kann dann für einen User mehrere Kategorien auswählen. Da eine mm-Relation
besteht, wird im Backend eine 2-spaltige Ansicht angezeigt. Rechts die Kategorien,
die durch anwählen in die linke Spalte wechseln.
Ich speichere dies ab, und voilà, in der Tabelle Produkte steht dann unter der
Spalte "categories" eine 3, wenn ich für den User 3 Kategorien ausgewählt habe.
Dann gehe ich in die mm-Tabelle zwischen Produkte und Kategorie, und die Einträge
sind auch vorhanden.
Ich bin so vorgegangen:
Im ProdukteController habe ich folgende Zeilen:
$categories = $this->categoryRepository->findAll();
$this->view->assign('categories', $categories);
$products = $this->productRepository->findAll();
$this->view->assign('products', $products);
In Resources\Private\Templates\Product\List.html steht:
<f:for each="{products}" as="product">
<f:for each="{products.categories}" as="category">
{category.title}
</f:for>
</f:for>
Die ausgewählten Kategorien werden richtig ausgegeben.
Ich komme jetzt den nächsten Schritt nicht weiter, anzeigen
eines Formulars, mit >>allen<< Kategorien und die angeklickten
Checkboxen vom User.
Der ändert die dann, klickt auf "Speichern" und es wird dementsprechend
in der mm-Tabelle aktualisiert.
Ich hoffe, ihr könnt mir eine Richtung zeigen.