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:

Customising the CMS /

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

Dropdown ignores database entry

Go to End

3 Posts   1099 Views


Community Member, 26 Posts

27 January 2010 at 12:21pm

I know it is not only me having this problem, but no one can tell me how to fix this. I have a dropdownfield and want to save an id with it. After submit, the id is stored in the database and the dropdown shows the selected value. But after requesting the form from the sitetree again, the dropdown shows the first value, in my case "Please choose".

Example of my source (Location extends DataObject):

public static $has_one = array(
"MeetingPoint" => "Location"

public function getCMSFields() {
$fields = parent::getCMSFields();

// create or find tabs
$fields->findOrMakeTab( "Root.Content.Locations" );

$meetingPoint = new DropdownField( "MeetingPoint", "Meeting Point", DataObject::get( "Location" )->toDropDownMap( "ID", "Name", "Please choose" ) );
$fields->addFieldToTab( "Root.Content.Locations", $meetingPoint );
return $fields;

function onBeforeWrite()
$this->MeetingPointID = $this->MeetingPoint;

Is this an official bug?


Forum Moderator, 5523 Posts

27 January 2010 at 1:11pm

You should name your dropdown field 'MeetingPointID' rather then 'MeetingPoint' and then get rid of your onBeforeWrite() call. Its confusing SS since when it loads the data it doesn't quite remember that MeetingPointID is to go into MeetingPoint. Well at least I'm pretty sure thats the solution.


Community Member, 26 Posts

28 January 2010 at 9:06am

Great! This fixed it! I can now use all my dropdowns and it selects stored values as given! Perfect! Thanks a lot!