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.
Property Summary
-
$_idPrefix protected
string|nullPrefix for id attribute.
-
$_idSuffixes protected
string[]A list of id suffixes used in the current rendering.
-
$_label protected
Cake\View\Widget\LabelWidgetLabel instance.
-
$_templates protected
Cake\View\StringTemplateStringTemplate instance.
-
$defaults protected
arrayData 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:
radioUsed to generate the input for a radio button. Can use the following variablesname,value,attrs.radioWrapperUsed to generate the container element for the radio + input element. Can use theinputandlabelvariables.
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(array $radio, array|true|null $disabled): bool
Disabled attribute detection.
Parameters
-
array$radio Radio info.
-
array|true|null$disabled The disabled values.
Returns
bool_renderInput() ¶ protected
_renderInput(string|int $val, string|array $text, array $data, Cake\View\Form\ContextInterface $context): string
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, array|string|false $label, string $input, Cake\View\Form\ContextInterface $context, bool $escape): string|false
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|falsemergeDefaults() ¶ protected
mergeDefaults(array $data, Cake\View\Form\ContextInterface $context): array
Merge default values with supplied data.
Parameters
-
array$data Data array
-
Cake\View\Form\ContextInterface$context Context instance.
Returns
arrayrender() ¶ public
render(array $data, Cake\View\Form\ContextInterface $context): string
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.idPrefixPrefix for generated ID attributes.
Parameters
-
array$data The data to build radio buttons with.
-
Cake\View\Form\ContextInterface$context The current form context.
Returns
stringsecureFields() ¶ public
secureFields(array $data): string[]
Returns a list of fields that need to be secured for this widget.
Parameters
-
array$data
Returns
string[]setMaxLength() ¶ protected
setMaxLength(array $data, Cake\View\Form\ContextInterface $context, string $fieldName): array
Set value for "maxlength" attribute if applicable.
Parameters
-
array$data Data array
-
Cake\View\Form\ContextInterface$context Context instance.
-
string$fieldName Field name.
Returns
arraysetRequired() ¶ protected
setRequired(array $data, Cake\View\Form\ContextInterface $context, string $fieldName): array
Set value for "required" attribute if applicable.
Parameters
-
array$data Data array
-
Cake\View\Form\ContextInterface$context Context instance.
-
string$fieldName Field name.
Returns
arraysetStep() ¶ protected
setStep(array $data, Cake\View\Form\ContextInterface $context, string $fieldName): array
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