Skip to main content

This site requires you to update your browser. Your browsing experience maybe affected by not having the most up to date version.

We're retiring the forums!

The SilverStripe forums have passed their heyday. They'll stick around, but will be read only. We'd encourage you to get involved in the community via the following channels instead:

Data Model Questions /

Moderators: martimiz, Sean, Ed, biapar, Willr, Ingo, swaiba

ManyManyComplexTableField into a DataObject

Go to End

4 Posts   2253 Views


Community Member, 114 Posts

18 November 2009 at 8:27am

I've gotten some strange behavior trying to put a ManyManyComplexTableField into a DataObject. When I put in the following code and try to create a new entry I just get a blank box and my PHP logs say "Call to a member function MyUnits() on a non-object in /Applications/MAMP/htdocs/ss_clean/sapphire/forms/HasManyComplexTableField.php" - but when I try to edit an existing record I get the table I want but nothing gets saved when I updated even though it says it went through.

class Person extends DataObject {

static $db = array(
'FirstName' => 'Text',
'LastName' => 'Text',
'Role' => 'Text',
'Email' => 'Text'

static $has_one = array(
'HeadShot' => 'Image',

static $many_many = array (
'MyUnits' => 'Unit'

function getCMSFields_forPopup() {
$fields = new FieldSet();

$fields->push( new TextField( 'FirstName', 'First Name' ) );
$fields->push( new TextField( 'LastName', 'Last Name' ) );
$fields->push( new TextField( 'Email' ) );

$fields->push(new DropdownField('Role', 'Role', array(
'Alumni' => 'Alumni',
'Faculty' => 'Faculty',
'Staff' => 'Staff',
'Student' =>'Student'
)), 'Content'

$fields->push(new ImageField('HeadShot'));

$fields->push(new ManyManyComplexTableField(
array('Name' => 'Unit Name')

return $fields;


so when I take out the "push->(new ManyMany..." I can create a new record, but when I put it back in it only shows on edit - but nothing gets saved. I'm not sure if I'm explaining this clearly as I'm honestly confused...


Community Member, 114 Posts

18 November 2009 at 9:01am

I just added a record to my table manually and when I edit the 'person' record it comes up as checked in my manymnaycomplextablefield - but still nothing on saving an update. so I think the problem can be narrowed down to getting updates commited and creating new records.


Community Member, 19 Posts

27 March 2010 at 5:17am

Edited: 27/03/2010 5:18am

Did you find a solution for that? I've got a similar issue. Nothing is saved, checked or updated. I'm on SS 2.3.6!


Community Member, 114 Posts

27 March 2010 at 5:31am

oh man, that was a while ago. I think I just ended up figuring out a work-around.

sorry I can't be of more help!