Ich habe ein DataObject
genannt Dienst erstellt und ich habe eine MANY_MANY Beziehung zu RelatedServices bekam wie folgt:zu einer MANY_MANY Beziehung Sparen mit einem ListBoxField
class Service extends DataObject {
private static $db = array (
'Name' => 'Varchar',
'Description' => 'Varchar',
);
private static $many_many = array (
'RelatedServices' => 'RelatedService'
);
public function getCMSFields() {
$fields = FieldList::create(TabSet::create('Root'));
$services = $this->get()->where("\"Service\".\"Name\" != '$this->Name'")->map('ID', 'Name')->toArray();
$fields->addFieldsToTab('Root.Main', array(
TextField::create('Name'),
TextField::create('Description'),
ListBoxField::create('RelatedServices', 'Related services')->setMultiple(true)->setSource($services)
));
return $fields;
}
}
und:
class RelatedService extends DataObject {
private static $db = array (
'Name' => 'Varchar',
);
private static $belongs_many_many = array (
'RelatedServices' => 'RelatedService'
);
}
Dies ist in einem ModelAdmin verwendet wird und der Dienst funktioniert, einschließlich des zugehörigen Textbereichs, jedoch nicht gespeichert. Ich tat es vorher, dass es in einem separaten Tab im CMS war und hatte RelatedService
haben und Admin-Abschnitt, die durch die Datenbank sah, wie es funktioniert, aber ich dachte, es war ein unnötiger Abschnitt so versucht, alles in einem und jetzt nicht mehr speichert in der DB.
Danke, habe ich denke, es sollte mir nur beziehen, sondern auf den Rahmen neu zu sein, war nicht sicher, wie die MANY_MANY, belongs_many_many funktionieren würde. – Rudiger