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.

Archive /

Our old forums are still available as a read-only archive.

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

Updating the data in a $has_one relationship inside the CMS

Go to End

5 Posts   4036 Views


Community Member, 5 Posts

10 August 2008 at 5:44pm

Hallo all,

Been bashing my head against this and other problems in SS for a while now, thought i'd ask the wider community.

In the linked code, (unnecessary .. i think.. bits excluded), the dropdown box gets the list of offices just fine, but it won't update when I click save. It says it all saves ok, but when i navigate away and back again, nothing has changed. What am I missing?

Investigating the generated code it seems like the <input> tags are fine. I'm stumped.


Community Member, 86 Posts

10 August 2008 at 6:16pm

Edited: 10/08/2008 6:19pm

Your DropdownField should have 'myOfficeID' instead of 'myOffice', because that's whats generated at the database level :)

Also, I should mention that it's common practice to use UpperCamelCase for field names - so it would be something like MyOffice => Office in your $has_one array, and new DropdownField("MyOfficeID").



Forum Moderator, 5523 Posts

10 August 2008 at 6:20pm

Edited: 10/08/2008 8:33pm

try change the DB field you point the drop down to from the has_one name to the actual field in the database eg change the new DropdownField() bit to

new DropdownField(

and see if that saves the data.

EDIT: matt pretty much posted the same thing just before me.


Community Member, 5 Posts

10 August 2008 at 6:40pm

Thanks very much people,

Works a treat. Here's hoping that little gem of info will trickle down to the rest of my troubles.


Forum Moderator, 922 Posts

10 August 2008 at 8:21pm

Edited: 10/08/2008 8:22pm

Even better, you can use TypeDropdown instead of DropdownField. This means you won't have to do a DataObject::get('Office') to return all the instances of the Office class, then transform that into an array map for the DropdownField source.


new TypeDropdown('MyOfficeID', 'Office', 'Office');