Class RadioWidget

Input widget class for generating a set of radio buttons.

This class is usually used internally by Cake\View\Helper\FormHelper, it but can be used to generate standalone radio buttons.

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 instance.

  • $_templates protected
    \Cake\View\StringTemplate

    StringTemplate instance.

  • $defaults protected
    array

    Data defaults.

Method Summary

  • __construct() public

    Constructor

  • _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

    Disabled attribute detection.

  • _renderInput() protected

    Renders a single radio input and label.

  • _renderLabel() protected

    Renders a label element for a given radio button.

  • mergeDefaults() protected

    Merge default values with supplied data.

  • render() public

    Render a set of radio buttons.

  • 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)

Constructor

This class uses a few templates:

  • radio Used to generate the input for a radio button. Can use the following variables name, value, attrs.
  • radioWrapper Used to generate the container element for the radio + input element. Can use the input and label variables.

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(array $radio, mixed $disabled)

Disabled attribute detection.

Parameters

array $radio

Radio info.

array|true|null $disabled

The disabled values.

Returns

bool

_renderInput() protected

_renderInput(mixed $val, mixed $text, mixed $data, mixed $context)

Renders a single radio input and label.

Parameters

string|int $val

The value of the radio input.

string|array $text

The label text, or complex radio type.

array $data

Additional options for input generation.

\Cake\View\Form\ContextInterface $context

The form context

Returns

string

_renderLabel() protected

_renderLabel(array $radio, mixed $label, mixed $input, mixed $context, mixed $escape)

Renders a label element for a given radio button.

In the future this might be refactored into a separate widget as other input types (multi-checkboxes) will also need labels generated.

Parameters

array $radio

The input properties.

array|string|false $label

The properties for a label.

string $input

The input widget.

\Cake\View\Form\ContextInterface $context

The form context.

bool $escape

Whether or not to HTML escape the label.

Returns

string|false

Generated label.

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 a set of radio buttons.

Data supports the following keys:

  • name - Set the input name.
  • options - An array of options. See below for more information.
  • disabled - Either true or an array of inputs to disable. When true, the select element will be disabled.
  • val - A string of the option to mark as selected.
  • label - Either false to disable label generation, or an array of attributes for all labels.
  • required - Set to true to add the required attribute on all generated radios.
  • idPrefix Prefix for generated ID attributes.

Parameters

array $data

The data to build radio buttons 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 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.RadioWidget.html