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, Ed, biapar, Willr, Ingo, swaiba

How to use an OptionsetField ?

Go to End

3 Posts   572 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, 187 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.