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.

General Questions /

General questions about getting started with SilverStripe that don't fit in any of the categories above.

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

How to use an OptionsetField ?


3 Posts   308 Views


Community Member, 24 Posts

17 February 2014 at 7:51am

I am alway relatively new to SilverStripe and not very used to PHP programming.

I would like to do an ArticleHolder whose behaviour depend on a var (here MyType)
I did the following in the DataObject

class ArticleHolder extends Page {

private static $allowed_children = array('ArticlePage');
private static $db=array(
   'MyType' => "Varchar(10)"

public function getCMSFields() {
$fields = parent::getCMSFields();
   $typeField = new OptionsetField(
      $name = "MyTypeID",
      $title = "Type de conteneur",
      $source = array(
      "1" => "Option 1",
      "2" => "Option 2",
      "3" => "Option 3",
      "4" => "Option 4",
      "5" => "Option 5"

return $fields;

class ArticleHolder_Controller extends Page_Controller {

Apparently, in the cms I have the right option set, but when I select a value and register, the selection is lost.
What should I do in order for my ArticleHolder to memorize the user's choice ?


Community Member, 175 Posts

17 February 2014 at 8:43am

Hi jaaf,

Your database field is called 'MyType', but your field name is 'MyTypeID'. You only need to append 'ID' if you're referring to a has_one relation, so you should rename your field (the first, $name parameter) to 'MyType'.



Community Member, 24 Posts

17 February 2014 at 7:57pm

Thank you kinglozzer,

I see now. Renaming of field was not necessary here.