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 ?


Reply

3 Posts   217 Views

Avatar
jaaf

17 February 2014 at 7:51am Community Member, 24 Posts

Hi,
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

<?php
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"
      )

      );
$fields->addFieldToTab('Root.Main',$typeField,'Content');
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 ?

Avatar
kinglozzer

17 February 2014 at 8:43am Community Member, 146 Posts

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'.

Loz

Avatar
jaaf

17 February 2014 at 7:57pm Community Member, 24 Posts

Thank you kinglozzer,

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