2012-07-10 17:01:35 +02:00
|
|
|
many_many Example
|
|
|
|
=================
|
2017-11-29 14:34:49 +01:00
|
|
|
|
2012-10-10 15:40:53 +02:00
|
|
|
```php
|
|
|
|
/*** TestPage.php ***/
|
|
|
|
class TestPage extends Page {
|
2017-11-29 14:34:49 +01:00
|
|
|
private static $many_many = array(
|
|
|
|
'TestObjects' => 'TestObject',
|
2012-10-10 15:40:53 +02:00
|
|
|
);
|
|
|
|
|
2017-11-29 14:34:49 +01:00
|
|
|
private static $many_many_extraFields = array(
|
|
|
|
'TestObjects' => array(
|
|
|
|
'SortOrder' => 'Int',
|
2012-10-10 15:40:53 +02:00
|
|
|
)
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
|
|
public function getCMSFields() {
|
2017-11-29 14:34:49 +01:00
|
|
|
$fields = parent::getCMSFields();
|
2012-07-10 17:00:06 +02:00
|
|
|
|
2017-11-29 14:34:49 +01:00
|
|
|
$conf = GridFieldConfig_RelationEditor::create(10);
|
2012-10-10 15:40:53 +02:00
|
|
|
$conf->addComponent(new GridFieldSortableRows('SortOrder'));
|
2012-07-10 17:00:06 +02:00
|
|
|
|
2012-10-10 15:40:53 +02:00
|
|
|
$fields->addFieldToTab('Root.TestObjects', new GridField('TestObjects', 'TestObjects', $this->TestObjects(), $conf));
|
2012-07-10 17:00:06 +02:00
|
|
|
|
2012-10-10 15:40:53 +02:00
|
|
|
return $fields;
|
|
|
|
}
|
|
|
|
|
|
|
|
public function TestObjects() {
|
|
|
|
return $this->getManyManyComponents('TestObjects')->sort('SortOrder');
|
2012-07-10 17:00:06 +02:00
|
|
|
}
|
2012-10-10 15:40:53 +02:00
|
|
|
}
|
2012-07-10 17:00:06 +02:00
|
|
|
|
|
|
|
|
2012-10-10 15:40:53 +02:00
|
|
|
/*** TestObject.php ***/
|
|
|
|
class TestObject extends DataObject {
|
2017-11-29 14:34:49 +01:00
|
|
|
private static $db = array(
|
|
|
|
'Title' => 'Text',
|
2012-10-10 15:40:53 +02:00
|
|
|
);
|
|
|
|
|
2017-11-29 14:34:49 +01:00
|
|
|
private static $belongs_many_many = array(
|
|
|
|
'TestPages' => 'TestPage',
|
2012-10-10 15:40:53 +02:00
|
|
|
);
|
|
|
|
}
|
|
|
|
```
|