17488 Posts in 4473 Topics by 1978 members
|
Page:
1
|
Go to End | |
| Author | Topic: | 3114 Views |
-
Updating the data in a $has_one relationship inside the CMS

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.
-
Re: Updating the data in a $has_one relationship inside the CMS

10 August 2008 at 6:16pm Last edited: 10 August 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").
Matt.
-
Re: Updating the data in a $has_one relationship inside the CMS

10 August 2008 at 6:20pm Last edited: 10 August 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(
'myOfficeID',
'Office',
$OfficesSource,
$this
),and see if that saves the data.
EDIT: matt pretty much posted the same thing just before me.
-
Re: Updating the data in a $has_one relationship inside the CMS

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.
-
Re: Updating the data in a $has_one relationship inside the CMS

10 August 2008 at 8:21pm Last edited: 10 August 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.
e.g:
new TypeDropdown('MyOfficeID', 'Office', 'Office');
| 3114 Views | ||
|
Page:
1
|
Go to Top |




