Magento 2 – By Default Checked Checkbox in Admin Form

adminformcheckboxmagento2

I want to make my checkbox defaultly checked in admin form, I add checkbox field using fieldset using below code :

foreach ($services as $service) {
          $servCond = false;
          if(is_array($chosenServ)){
            if(in_array($service['courierservices_id'],$chosenServ)){
              $servCond = true;
            }
          }

          $value['value'] = $service['courierservices_id'];
          $value['label'] = $service['description'];
          $value['checked'] = $servCond;
          $values[] = $value;
        }
        $fieldset->addField(
            'courierservice'.$i,
            'checkboxes',
            [
                'name' => _('courier_service'.$i.'[]'),
                'label' => __('Services : '),
                'values' => $values,
                'checked' => true
            ]
        );
        $i++;

Best Answer

Instead of using 'checked' => true , i use 'checked' => array(value1,value2,...) , in conlcusion if you wanna set checkboxes checked use the value from each checkbox insert it to array and put in in 'checked' => array(value of checkboxes), here's the simple example :

$fieldset->addField(
                'Examples',
                'checkboxes',
                [
                    'name' => _('simple_example[]'),
                    'label' => __('Example : '),
                    'values' => [
                      ['value' => '1','label' => 'Checked'],
                      ['value' => '2','label' => 'Not Checked'],
                      ['value' => '3','label' => 'Checked']
                    ],
                    'checked' => array(1,3)
                ]
            ); 
Related Topic