Class MultiCheckboxWidget
Input widget class for generating multiple checkboxes.
This class is usually used internally by Cake\View\Helper\FormHelper
,
it but can be used to generate standalone multiple checkboxes.
Property Summary
-
$_idPrefix protected
string|null
Prefix for id attribute.
-
$_idSuffixes protected
array<string>
A list of id suffixes used in the current rendering.
-
$_label protected
Cake\View\Widget\LabelWidget
Label widget instance.
-
$_templates protected
Cake\View\StringTemplate
StringTemplate instance.
-
$defaults protected
array<string, mixed>
Data defaults.
Method Summary
-
__construct() public
Render multi-checkbox widget.
-
_clearIds() protected
Clear the stored ID suffixes.
-
_domId() protected
Generate an ID suitable for use in an ID attribute.
-
_id() protected
Generate an ID attribute for an element.
-
_idSuffix() protected
Generate an ID suffix.
-
_isDisabled() protected
Helper method for deciding what options are disabled.
-
_isSelected() protected
Helper method for deciding what options are selected.
-
_renderInput() protected
Render a single checkbox & wrapper.
-
_renderInputs() protected
Render the checkbox inputs.
-
mergeDefaults() protected
Merge default values with supplied data.
-
render() public
Render multi-checkbox widget.
-
secureFields() public
Returns a list of fields that need to be secured for this widget.
-
setMaxLength() protected
Set value for "maxlength" attribute if applicable.
-
setRequired() protected
Set value for "required" attribute if applicable.
-
setStep() protected
Set value for "step" attribute if applicable.
Method Detail
__construct() ¶ public
__construct(Cake\View\StringTemplate $templates, Cake\View\Widget\LabelWidget $label)
Render multi-checkbox widget.
This class uses the following templates:
checkbox
Renders checkbox input controls. Accepts thename
,value
andattrs
variables.checkboxWrapper
Renders the containing div/element for a checkbox and its label. Accepts theinput
, andlabel
variables.multicheckboxWrapper
Renders a wrapper around grouped inputs.multicheckboxTitle
Renders the title element for grouped inputs.
Parameters
-
Cake\View\StringTemplate
$templates Templates list.
-
Cake\View\Widget\LabelWidget
$label Label widget instance.
_domId() ¶ protected
_domId(string $value): string
Generate an ID suitable for use in an ID attribute.
Parameters
-
string
$value The value to convert into an ID.
Returns
string
_id() ¶ protected
_id(string $name, string $val): string
Generate an ID attribute for an element.
Ensures that id's for a given set of fields are unique.
Parameters
-
string
$name The ID attribute name.
-
string
$val The ID attribute value.
Returns
string
_idSuffix() ¶ protected
_idSuffix(string $val): string
Generate an ID suffix.
Ensures that id's for a given set of fields are unique.
Parameters
-
string
$val The ID attribute value.
Returns
string
_isDisabled() ¶ protected
_isDisabled(string $key, mixed $disabled): bool
Helper method for deciding what options are disabled.
Parameters
-
string
$key The key to test.
-
mixed
$disabled The disabled values.
Returns
bool
_isSelected() ¶ protected
_isSelected(string $key, array<string>|string|int|false|null $selected): bool
Helper method for deciding what options are selected.
Parameters
-
string
$key The key to test.
-
array<string>|string|int|false|null
$selected The selected values.
Returns
bool
_renderInput() ¶ protected
_renderInput(array<string, mixed> $checkbox, Cake\View\Form\ContextInterface $context): string
Render a single checkbox & wrapper.
Parameters
-
array<string, mixed>
$checkbox An array containing checkbox key/value option pairs
-
Cake\View\Form\ContextInterface
$context Context object.
Returns
string
_renderInputs() ¶ protected
_renderInputs(array<string, mixed> $data, Cake\View\Form\ContextInterface $context): array<string>
Render the checkbox inputs.
Parameters
-
array<string, mixed>
$data The data array defining the checkboxes.
-
Cake\View\Form\ContextInterface
$context The current form context.
Returns
array<string>
mergeDefaults() ¶ protected
mergeDefaults(array<string, mixed> $data, Cake\View\Form\ContextInterface $context): array<string, mixed>
Merge default values with supplied data.
Parameters
-
array<string, mixed>
$data Data array
-
Cake\View\Form\ContextInterface
$context Context instance.
Returns
array<string, mixed>
render() ¶ public
render(array<string, mixed> $data, Cake\View\Form\ContextInterface $context): string
Render multi-checkbox widget.
Data supports the following options.
name
The name attribute of the inputs to create.[]
will be appended to the name.options
An array of options to create checkboxes out of.val
Either a string/integer or array of values that should be checked. Can also be a complex options set.disabled
Either a boolean or an array of checkboxes to disable.escape
Set to false to disable HTML escaping.options
An associative array of value=>labels to generate options for.idPrefix
Prefix for generated ID attributes.
Options format
The options option can take a variety of data format depending on the complexity of HTML you want generated.
You can generate simple options using a basic associative array:
'options' => ['elk' => 'Elk', 'beaver' => 'Beaver']
If you need to define additional attributes on your option elements you can use the complex form for options:
'options' => [
['value' => 'elk', 'text' => 'Elk', 'data-foo' => 'bar'],
]
This form requires that both the value
and text
keys be defined.
If either is not set options will not be generated correctly.
Parameters
-
array<string, mixed>
$data The data to generate a checkbox set with.
-
Cake\View\Form\ContextInterface
$context The current form context.
Returns
string
secureFields() ¶ public
secureFields(array<string, mixed> $data): array<string>
Returns a list of fields that need to be secured for this widget.
Parameters
-
array<string, mixed>
$data
Returns
array<string>
setMaxLength() ¶ protected
setMaxLength(array<string, mixed> $data, Cake\View\Form\ContextInterface $context, string $fieldName): array<string, mixed>
Set value for "maxlength" attribute if applicable.
Parameters
-
array<string, mixed>
$data Data array
-
Cake\View\Form\ContextInterface
$context Context instance.
-
string
$fieldName Field name.
Returns
array<string, mixed>
setRequired() ¶ protected
setRequired(array<string, mixed> $data, Cake\View\Form\ContextInterface $context, string $fieldName): array<string, mixed>
Set value for "required" attribute if applicable.
Parameters
-
array<string, mixed>
$data Data array
-
Cake\View\Form\ContextInterface
$context Context instance.
-
string
$fieldName Field name.
Returns
array<string, mixed>
setStep() ¶ protected
setStep(array<string, mixed> $data, Cake\View\Form\ContextInterface $context, string $fieldName): array<string, mixed>
Set value for "step" attribute if applicable.
Parameters
-
array<string, mixed>
$data Data array
-
Cake\View\Form\ContextInterface
$context Context instance.
-
string
$fieldName Field name.
Returns
array<string, mixed>