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've moved the forum!

Please use forum.silverstripe.org for any new questions (announcement).
The forum archive will stick around, but will be read only.

You can also use our Slack channel or StackOverflow to ask for help.
Check out our community overview for more options to contribute.

Form Questions /

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

Populating a form's CheckboxSetField


Go to End


4 Posts   2243 Views

Avatar
rob.s

Community Member, 78 Posts

2 September 2010 at 1:51am

Edited: 02/09/2010 1:54am

Hi,

i have trouble generating a form that should pe prefilled with data.
All fields are fine but the CheckboxSetField.

I have a class "Request" (extended from DataObject ) that has a many_many relation to the class "Artistcategory"

Now i want to show my "RequestForm" and populate the Data coming from a DataObject.

        public function RequestForm()
        {
            Validator::set_javascript_validation_handler('none');
            $form = new RequestForm($this, 'RequestForm');
            if( $this->_Request instanceof Request ) {
                $form->loadDataFrom ( $this->_Request);
            }
            return $form;
        }

All fields are populated with the correct data of the dataobject.
But not the CheckboxSetField. It's always empty (no Checkbox is ticked).

Any ideas ?

Class Request:

class Request extends DataObject {
    public static $db = array(
..........
    );

    public static $many_many = array(
        'Artistcategories'  => 'Artistcategory'
    );

Class Artistcategory:

class Artistcategory extends DataObject {
    public static $db = array(
      ......
    );

    public static $many_many = array(        
       .......
    );

    public static $belongs_many_many = array(
        'Requests' => 'Request',
    );
]

Avatar
cumquat

Community Member, 201 Posts

22 March 2011 at 10:46pm

Hi ya,

Did you get any luck with this as I'm stuck here too?

Regards

Mick

Avatar
swaiba

Forum Moderator, 1899 Posts

24 March 2011 at 5:11am

if it helps this is how I create a CheckboxSetField with values and specify the ones currently selected...

$dos = DataObject::get(<DataObjectName>);
$map = $dos ? $map = $dos->toDropdownMap('ID','Name') : array();

$selectedarr = array();
$selectedarr[<ID>] = <ID>; //you would get this list from the relationship componentset with ->getIdList()

$cbf = new CheckboxSetField(<FieldName>,<TabName>, $map,$selectedarr);

Avatar
cumquat

Community Member, 201 Posts

24 March 2011 at 8:54am

Thanks for the help swaiba, i'm moving further on but am now stuck on how to save all the data including the checkbox data, i can get the standard data to save but not the many_many data. I had started another post here http://silverstripe.org/form-questions/show/16256 if you could help?

Mick