alexplusde / ymca

Erstellt passende YForm-Dataset-Klassen und API-Routen anhand YForm-Felddefinitionen, um diese schnell und einfach in Projekten und Addons einzusetzen.
https://github.com/alexplusde/ymca
MIT License
7 stars 1 forks source link

Für den FeldTyp 'be_manager_relation' in verbindung mit Multiple Select wird falscher Code erzeugt. #20

Open timeceeper opened 1 month ago

timeceeper commented 1 month ago

Typname be_manager_relation

Die Tabelle (rex_produkt) hat die Felder: id, sku, titel und relations. relations ist das be_manager_relation Feld. -> Zieltabelle: rex_produkt -> Ziel Tabellenfeld: sku, ' - ', title -> Mehrfachauswahl: Multible

Beim Datensatzbearbeiten bekomme ich ein multible-Select-Feld mit allen Produkten.

YMCA generiert hier:

class product extends rex_yform_manager_dataset {
 ...
 public function getRelations() : ?rex_yform_manager_dataset {
        return $this->getRelatedDataset("relations");
 }
}

Beim Aufruf von getRelations() kommt eine Exception: rex_yform_manager_dataset::get(): Argument #1 ($id) must be of type int, string given,

Weil die $id in \addons\yform\plugins\manager\lib\yform\manager\dataset.php: 343 eine Kommaseparierte Liste der IDs aus dem Selectfeld ist und nicht nur eine ID.

Bei "Multible" muss es eine Collection statt einem Dataset sein.

public function getRelations() : ?rex_yform_manager_collection {
    return $this->getRelatedCollection("relations");
}
alxndr-w commented 1 month ago

Hier müsste mein Skript zusätzliche Parameter der jeweiligen Felder anschauen.

Im Kontext von be_media und be_link sind z.B. auch multiple-Attribute möglich.