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

Newbie Question: CheckboxSetField


Reply

3 Posts   2004 Views

Avatar
tonito

28 June 2010 at 4:00pm (Last edited: 24 August 2010 3:11am), Community Member, 24 Posts

<code>
class Test extends Page {
static $db = array(
   );
static $has_one = array(
);

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

   $fields->addFieldsToTab(
   'Root.Content.Main',
   array(
      new CheckboxSetField(
    $name = "topics",
    $title = "I am interested in the following topics",
    $source = array(
    "1" => "Technology",
    "2" => "Gardening",
    "3" => "Cooking",
    "4" => "Sports"
    ),
    $value = "1"
   )
   )
   );
   
return $fields;
}

}
</code>

I realize this is a very basic question, but I am new to silverstripe and I am stumped.

How do I declare the variable "topics", as it stands, the checkboxes appear fine in the admin part, but I can't save them (they always revert back to the default value) nor display results.

Avatar
Jedateach

28 June 2010 at 6:40pm (Last edited: 28 June 2010 6:41pm), Forum Moderator, 227 Posts

Hi tonito,
Try adding a database field to save the selection into. Your $db array becomes:

static $db = array(
'topics' => 'Varchar'
);

Because your checkboxsetfield also has the name 'topics' , the data will be saved into the 'topics' database field for each test page.

Chances are you'll be wanting to do something more advanced than that. You should learn about the SilverStripe [url=http://doc.silverstripe.org/datamodel]datamodel[/url] , perhaps also go through the [url=http://doc.silverstripe.org/tutorials]tutorials[/url].

Avatar
tonito

23 August 2010 at 11:50am (Last edited: 24 August 2010 3:35pm), Community Member, 24 Posts

Thank you it's what I needed.