Consider this form element:
$form['my_checkboxes'] = array(
'#type' => 'checkboxes',
'#title' => 'my Checkboxes',
'#options' => array(
1 => 'one',
2 => 'two',
3 => 'three',
4 => 'four',
),
'#default_value' => 2,
);
The above throws the following error:
Warning: Invalid argument supplied for foreach() in form_type_checkboxes_value()
(line ... of /var/www/html/includes/form.inc).
This is because the #default_value for '#type' => 'checkboxes' is always expected to be provided in a form of an array. So in order to fix the above, the code should be changed to this instead:
- '#default_value' => 2,
+ '#default_value' => array(2),
This always trips me, and although it makes sense in cases where multiple checkboxes from the #options need to be ticked, it feels silly to impose on developers when we can fix it for them.
See the following resources: - https://www.drupal.org/project/drupal/issues/3009881 - https://www.drupal.org/project/drupal/issues/1768464 - https://www.drupal.org/forum/support/module-development-and-code-questio...
Recent comments
@yorkshirepudding, In the end I fixed it by deleting the config/active folder contents, copying the config/staging/ files into config/active, importing the database again and clearing the caches...
Importing the staged config throws an error: another field with the same name already exists
Thanks, I have to go out now, I will try later on and report back
Importing the staged config throws an error: another field with the same name already exists
Hi Francis. Yes, what config do you have in staging for it? You might have configs like: field.field.field_video_embed field.instance.node.page....
Importing the staged config throws an error: another field with the same name already exists