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.

Namespace: Cake\View\Widget

Properties summary

  • $_idPrefix protected
    string|null

    Prefix for id attribute.

  • $_idSuffixes protected
    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

    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 the name, value and attrs variables.
  • checkboxWrapper Renders the containing div/element for a checkbox and its label. Accepts the input, and label 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.

_clearIds() protected

_clearIds()

Clear the stored ID suffixes.

_domId() protected

_domId(string $value)

Generate an ID suitable for use in an ID attribute.

Parameters

string $value

The value to convert into an ID.

Returns

string

The generated id.

_id() protected

_id(string $name, string $val)

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

Generated id.

_idSuffix() protected

_idSuffix(string $val)

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

Generated id suffix.

_isDisabled() protected

_isDisabled(string $key, mixed $disabled)

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, mixed $selected)

Helper method for deciding what options are selected.

Parameters

string $key

The key to test.

array|string|null $selected

The selected values.

Returns

bool

_renderInput() protected

_renderInput(array $checkbox, \Cake\View\Form\ContextInterface $context)

Render a single checkbox & wrapper.

Parameters

array $checkbox

An array containing checkbox key/value option pairs

\Cake\View\Form\ContextInterface $context

Context object.

Returns

string

_renderInputs() protected

_renderInputs(array $data, \Cake\View\Form\ContextInterface $context)

Render the checkbox inputs.

Parameters

array $data

The data array defining the checkboxes.

\Cake\View\Form\ContextInterface $context

The current form context.

Returns

string[]

An array of rendered inputs.

mergeDefaults() protected

mergeDefaults(array $data, \Cake\View\Form\ContextInterface $context)

Merge default values with supplied data.

Parameters

array $data

Data array

\Cake\View\Form\ContextInterface $context

Context instance.

Returns

array

Updated data array.

render() public

render(array $data, \Cake\View\Form\ContextInterface $context)

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 $data

The data to generate a checkbox set with.

\Cake\View\Form\ContextInterface $context

The current form context.

Returns

string

secureFields() public

secureFields(array $data)

Returns a list of fields that need to be secured for this widget.

Parameters

array $data

The data to render.

Returns

string[]

Array of fields to secure.

setMaxLength() protected

setMaxLength(array $data, \Cake\View\Form\ContextInterface $context, string $fieldName)

Set value for "maxlength" attribute if applicable.

Parameters

array $data

Data array

\Cake\View\Form\ContextInterface $context

Context instance.

string $fieldName

Field name.

Returns

array

Updated data array.

setRequired() protected

setRequired(array $data, \Cake\View\Form\ContextInterface $context, string $fieldName)

Set value for "required" attribute if applicable.

Parameters

array $data

Data array

\Cake\View\Form\ContextInterface $context

Context instance.

string $fieldName

Field name.

Returns

array

Updated data array.

setStep() protected

setStep(array $data, \Cake\View\Form\ContextInterface $context, string $fieldName)

Set value for "step" attribute if applicable.

Parameters

array $data

Data array

\Cake\View\Form\ContextInterface $context

Context instance.

string $fieldName

Field name.

Returns

array

Updated data array.

Property Detail

$_idPrefix protected

Prefix for id attribute.

Type

string|null

$_idSuffixes protected

A list of id suffixes used in the current rendering.

Type

string[]

$_label protected

Label widget instance.

Type

\Cake\View\Widget\LabelWidget

$_templates protected

StringTemplate instance.

Type

\Cake\View\StringTemplate

$defaults protected

Data defaults.

Type

array

© 2005–present The Cake Software Foundation, Inc.
Licensed under the MIT License.
CakePHP is a registered trademark of Cake Software Foundation, Inc.
We are not endorsed by or affiliated with CakePHP.
https://api.cakephp.org/4.0/class-Cake.View.Widget.MultiCheckboxWidget.html