Skip to content
PHP Ecosystem
Explore

BaseHtml

API reference › yii › helpers › BaseHtml

classyii\helpers\BaseHtml
Since2.0
Sourceframework/helpers/BaseHtml.php
1 subclass

BaseHtml provides concrete implementation for Html.

Do not use BaseHtml. Use Html instead.

PropertyTypeDescriptionDefined by
$attributeOrder staticarrayThe preferred order of attributes in a tag. Default: ['type', 'id', 'class', 'name', 'value', 'href', 'src', 'srcset', 'form', 'action', 'method', 'selected', 'checked', 'readonly', 'disabled', 'multiple', 'size', 'maxlength', 'width', 'height', 'rows', 'cols', 'alt', 'title', 'rel', 'media'].BaseHtml
$attributeRegex staticstringRegular expression used for attribute name validation. Default: '/(^|.*\])([\w\.\+]+)(\[.*|$)/u'. Available since 2.0.12.BaseHtml
$dataAttributes staticarrayList of tag attributes that should be specially handled when their values are of array type. Default: ['aria', 'data', 'data-ng', 'ng']. Available since 2.0.3.BaseHtml
$normalizeClassAttribute staticboolWhether to removes duplicate class names in tag attribute class Default: false. Available since 2.0.44.BaseHtml
$voidElements staticarrayList of void elements (element name => 1) Default: ['area' => 1, 'base' => 1, 'br' => 1, 'col' => 1, 'command' => 1, 'embed' => 1, 'hr' => 1, 'img' => 1, 'input' => 1, 'keygen' => 1, 'link' => 1, 'meta' => 1, 'param' => 1, 'source' => 1, 'track' => 1, 'wbr' => 1].BaseHtml
MethodDescriptionDefined by
a() staticGenerates a hyperlink tag.BaseHtml
activeCheckbox() staticGenerates a checkbox tag together with a label for the given model attribute.BaseHtml
activeCheckboxList() staticGenerates a list of checkboxes.BaseHtml
activeDropDownList() staticGenerates a drop-down list for the given model attribute.BaseHtml
activeFileInput() staticGenerates a file input tag for the given model attribute.BaseHtml
activeHiddenInput() staticGenerates a hidden input tag for the given model attribute.BaseHtml
activeHint() staticGenerates a hint tag for the given model attribute.BaseHtml
activeInput() staticGenerates an input tag for the given model attribute.BaseHtml
activeLabel() staticGenerates a label tag for the given model attribute.BaseHtml
activeListBox() staticGenerates a list box.BaseHtml
activePasswordInput() staticGenerates a password input tag for the given model attribute.BaseHtml
activeRadio() staticGenerates a radio button tag together with a label for the given model attribute.BaseHtml
activeRadioList() staticGenerates a list of radio buttons.BaseHtml
activeTextarea() staticGenerates a textarea tag for the given model attribute.BaseHtml
activeTextInput() staticGenerates a text input tag for the given model attribute.BaseHtml
addCssClass() staticAdds a CSS class (or several classes) to the specified options.BaseHtml
addCssStyle() staticAdds the specified CSS style to the HTML options.BaseHtml
beginForm() staticGenerates a form start tag.BaseHtml
beginTag() staticGenerates a start tag.BaseHtml
button() staticGenerates a button tag.BaseHtml
buttonInput() staticGenerates an input button.BaseHtml
checkbox() staticGenerates a checkbox input.BaseHtml
checkboxList() staticGenerates a list of checkboxes.BaseHtml
csrfMetaTags() staticGenerates the meta tags containing CSRF token information.BaseHtml
cssFile() staticGenerates a link tag that refers to an external CSS file.BaseHtml
cssStyleFromArray() staticConverts a CSS style array into a string representation.BaseHtml
cssStyleToArray() staticConverts a CSS style string into an array representation.BaseHtml
decode() staticDecodes special HTML entities back to the corresponding characters.BaseHtml
dropDownList() staticGenerates a drop-down list.BaseHtml
encode() staticEncodes special characters into HTML entities.BaseHtml
endForm() staticGenerates a form end tag.BaseHtml
endTag() staticGenerates an end tag.BaseHtml
error() staticGenerates a tag that contains the first validation error of the specified model attribute.BaseHtml
errorSummary() staticGenerates a summary of the validation errors.BaseHtml
escapeJsRegularExpression() staticEscapes regular expression to use in JavaScript.BaseHtml
fileInput() staticGenerates a file input field.BaseHtml
getAttributeName() staticReturns the real attribute name from the given attribute expression.BaseHtml
getAttributeValue() staticReturns the value of the specified attribute name or expression.BaseHtml
getInputId() staticGenerates an appropriate input ID for the specified attribute name or expression.BaseHtml
getInputIdByName() staticConverts input name to ID.BaseHtml
getInputName() staticGenerates an appropriate input name for the specified attribute name or expression.BaseHtml
hiddenInput() staticGenerates a hidden input field.BaseHtml
img() staticGenerates an image tag.BaseHtml
input() staticGenerates an input type of the given type.BaseHtml
jsFile() staticGenerates a script tag that refers to an external JavaScript file.BaseHtml
label() staticGenerates a label tag.BaseHtml
listBox() staticGenerates a list box.BaseHtml
mailto() staticGenerates a mailto hyperlink.BaseHtml
ol() staticGenerates an ordered list.BaseHtml
passwordInput() staticGenerates a password input field.BaseHtml
radio() staticGenerates a radio button input.BaseHtml
radioList() staticGenerates a list of radio buttons.BaseHtml
removeCssClass() staticRemoves a CSS class from the specified options.BaseHtml
removeCssStyle() staticRemoves the specified CSS style from the HTML options.BaseHtml
renderSelectOptions() staticRenders the option tags that can be used by dropDownList() and listBox().BaseHtml
renderTagAttributes() staticRenders the HTML tag attributes.BaseHtml
resetButton() staticGenerates a reset button tag.BaseHtml
resetInput() staticGenerates a reset input button.BaseHtml
script() staticGenerates a script tag.BaseHtml
style() staticGenerates a style tag.BaseHtml
submitButton() staticGenerates a submit button tag.BaseHtml
submitInput() staticGenerates a submit input button.BaseHtml
tag() staticGenerates a complete HTML tag.BaseHtml
textarea() staticGenerates a text area input.BaseHtml
textInput() staticGenerates a text input field.BaseHtml
ul() staticGenerates an unordered list.BaseHtml
activeBooleanInput() protected staticGenerates a boolean input This method is mainly called by activeCheckbox() and activeRadio().BaseHtml
activeListInput() protected staticGenerates a list of input fields.BaseHtml
booleanInput() protected staticGenerates a boolean input.BaseHtml
setActivePlaceholder() protected staticGenerate placeholder from model attribute label.BaseHtml
public static array $attributeOrder = ['type', 'id', 'class', 'name', 'value', 'href', 'src', 'srcset', 'form', 'action', 'method', 'selected', 'checked', 'readonly', 'disabled', 'multiple', 'size', 'maxlength', 'width', 'height', 'rows', 'cols', 'alt', 'title', 'rel', 'media']

The preferred order of attributes in a tag.

This mainly affects the order of the attributes that are rendered by renderTagAttributes().

public static array $dataAttributes = ['aria', 'data', 'data-ng', 'ng']

List of tag attributes that should be specially handled when their values are of array type.

In particular, if the value of the data attribute is ['name' => 'xyz', 'age' => 13], two attributes will be generated instead of one: data-name="xyz" data-age="13".

Since

2.0.3

public static function a(string $text, array|string|null $url = null, array $options = []): string

Generates a hyperlink tag.

Parameters

ParameterTypeDescription
$textstringLink body. It will NOT be HTML-encoded. Therefore you can pass in HTML code such as an image tag. If this is coming from end users, you should consider encode() it to prevent XSS attacks.
$urlarray|string|nullThe URL for the hyperlink tag. This parameter will be processed by Url::to() and will be used for the “href” attribute of the tag. If this parameter is null, the “href” attribute will not be generated. If you want to use an absolute url you can call Url::to() yourself, before passing the URL to this method, like this: Html::a(‘link text’, Url::to($url, true))
$optionsarrayThe tag options in terms of name-value pairs. These will be rendered as the attributes of the resulting tag. The values will be HTML-encoded using encode(). If a value is null, the corresponding attribute will not be rendered. See renderTagAttributes() for details on how attributes are being rendered.

Returns

string: The generated hyperlink

See also

public static function activeCheckbox(yii\base\Model $model, string $attribute, array $options = []): string

Generates a checkbox tag together with a label for the given model attribute.

This method will generate the “checked” tag attribute according to the model attribute value.

Parameters

ParameterTypeDescription
$modelyii\base\ModelThe model object
$attributestringThe attribute name or expression. See getAttributeName() for the format about attribute expression.
$optionsarrayThe tag options in terms of name-value pairs. See booleanInput() for details about accepted attributes.

Returns

string: The generated checkbox tag

public static function activeCheckboxList(yii\base\Model $model, string $attribute, array $items, array $options = []): string

Generates a list of checkboxes.

A checkbox list allows multiple selection, like listBox(). As a result, the corresponding submitted value is an array. The selection of the checkbox list is taken from the value of the model attribute.

Parameters

ParameterTypeDescription
$modelyii\base\ModelThe model object
$attributestringThe attribute name or expression. See getAttributeName() for the format about attribute expression.
$itemsarrayThe data item used to generate the checkboxes. The array keys are the checkbox values, and the array values are the corresponding labels.
$optionsarrayOptions (name => config) for the checkbox list container tag. The following options are specially handled: - tag: string|false, the tag name of the container element. False to render checkbox without container. See also tag(). - unselect: string, the value that should be submitted when none of the checkboxes is selected. You may set this option to be null to prevent default value submission. If this option is not set, an empty string will be submitted. - encode: boolean, whether to HTML-encode the checkbox labels. Defaults to true. This option is ignored if item option is set. - separator: string, the HTML code that separates items. - itemOptions: array, the options for generating the checkbox tag using checkbox(). - item: callable, a callback that can be used to customize the generation of the HTML code corresponding to a single item in $items. The signature of this callback must be: function ($index, $label, $name, $checked, $value) where $index is the zero-based index of the checkbox in the whole list; $label is the label for the checkbox; and $name, $value and $checked represent the name, value and the checked status of the checkbox input. See renderTagAttributes() for details on how attributes are being rendered.

Returns

string: The generated checkbox list

public static function activeDropDownList(yii\base\Model $model, string $attribute, array $items, array $options = []): string

Generates a drop-down list for the given model attribute.

The selection of the drop-down list is taken from the value of the model attribute.

Parameters

ParameterTypeDescription
$modelyii\base\ModelThe model object
$attributestringThe attribute name or expression. See getAttributeName() for the format about attribute expression.
$itemsarrayThe option data items. The array keys are option values, and the array values are the corresponding option labels. The array can also be nested (i.e. some array values are arrays too). For each sub-array, an option group will be generated whose label is the key associated with the sub-array. If you have a list of data models, you may convert them into the format described above using ArrayHelper::map(). Note, the values and labels will be automatically HTML-encoded by this method, and the blank spaces in the labels will also be HTML-encoded.
$optionsarrayThe tag options in terms of name-value pairs. The following options are specially handled: - prompt: string, a prompt text to be displayed as the first option. Since version 2.0.11 you can use an array to override the value and to set other tag attributes: [‘text’ => ‘Please select’, ‘options’ => [‘value’ => ‘none’, ‘class’ => ‘prompt’, ‘label’ => ‘Select’]], - options: array, the attributes for the select option tags. The array keys must be valid option values, and the array values are the extra attributes for the corresponding option tags. For example, [ ‘value1’ => [‘disabled’ => true], ‘value2’ => [‘label’ => ‘value 2’], ]; - groups: array, the attributes for the optgroup tags. The structure of this is similar to that of ‘options’, except that the array keys represent the optgroup labels specified in $items. - encodeSpaces: bool, whether to encode spaces in option prompt and option value with   character. Defaults to false. - encode: bool, whether to encode option prompt and option value characters. Defaults to true. This option is available since 2.0.3. The rest of the options will be rendered as the attributes of the resulting tag. The values will be HTML-encoded using encode(). If a value is null, the corresponding attribute will not be rendered. See renderTagAttributes() for details on how attributes are being rendered.

Returns

string: The generated drop-down list tag

public static function activeFileInput(yii\base\Model $model, string $attribute, array $options = []): string

Generates a file input tag for the given model attribute.

This method will generate the “name” and “value” tag attributes automatically for the model attribute unless they are explicitly specified in $options. Additionally, if a separate set of HTML options array is defined inside $options with a key named hiddenOptions, it will be passed to the activeHiddenInput field as its own $options parameter.

Parameters

ParameterTypeDescription
$modelyii\base\ModelThe model object
$attributestringThe attribute name or expression. See getAttributeName() for the format about attribute expression.
$optionsarrayThe tag options in terms of name-value pairs. These will be rendered as the attributes of the resulting tag. The values will be HTML-encoded using encode(). See renderTagAttributes() for details on how attributes are being rendered. If hiddenOptions parameter which is another set of HTML options array is defined, it will be extracted from $options to be used for the hidden input.

Returns

string: The generated input tag

public static function activeHiddenInput(yii\base\Model $model, string $attribute, array $options = []): string

Generates a hidden input tag for the given model attribute.

This method will generate the “name” and “value” tag attributes automatically for the model attribute unless they are explicitly specified in $options.

Parameters

ParameterTypeDescription
$modelyii\base\ModelThe model object
$attributestringThe attribute name or expression. See getAttributeName() for the format about attribute expression.
$optionsarrayThe tag options in terms of name-value pairs. These will be rendered as the attributes of the resulting tag. The values will be HTML-encoded using encode(). See renderTagAttributes() for details on how attributes are being rendered.

Returns

string: The generated input tag

public static function activeHint(yii\base\Model $model, string $attribute, array $options = []): string

Generates a hint tag for the given model attribute.

The hint text is the hint associated with the attribute, obtained via Model::getAttributeHint(). If no hint content can be obtained, method will return an empty string.

Parameters

ParameterTypeDescription
$modelyii\base\ModelThe model object
$attributestringThe attribute name or expression. See getAttributeName() for the format about attribute expression.
$optionsarrayThe tag options in terms of name-value pairs. These will be rendered as the attributes of the resulting tag. The values will be HTML-encoded using encode(). If a value is null, the corresponding attribute will not be rendered. The following options are specially handled: - hint: this specifies the hint to be displayed. Note that this will NOT be encoded. If this is not set, Model::getAttributeHint() will be called to get the hint for display (without encoding). See renderTagAttributes() for details on how attributes are being rendered.

Returns

string: The generated hint tag

Since

2.0.4

public static function activeInput(string $type, yii\base\Model $model, string $attribute, array $options = []): string

Generates an input tag for the given model attribute.

This method will generate the “name” and “value” tag attributes automatically for the model attribute unless they are explicitly specified in $options.

Parameters

ParameterTypeDescription
$typestringThe input type (e.g. ‘text’, ‘password’)
$modelyii\base\ModelThe model object
$attributestringThe attribute name or expression. See getAttributeName() for the format about attribute expression.
$optionsarrayThe tag options in terms of name-value pairs. These will be rendered as the attributes of the resulting tag. The values will be HTML-encoded using encode(). See renderTagAttributes() for details on how attributes are being rendered.

Returns

string: The generated input tag

public static function activeLabel(yii\base\Model $model, string $attribute, array $options = []): string

Generates a label tag for the given model attribute.

The label text is the label associated with the attribute, obtained via Model::getAttributeLabel().

Parameters

ParameterTypeDescription
$modelyii\base\ModelThe model object
$attributestringThe attribute name or expression. See getAttributeName() for the format about attribute expression.
$optionsarrayThe tag options in terms of name-value pairs. These will be rendered as the attributes of the resulting tag. The values will be HTML-encoded using encode(). If a value is null, the corresponding attribute will not be rendered. The following options are specially handled: - label: this specifies the label to be displayed. Note that this will NOT be encoded. If this is not set, Model::getAttributeLabel() will be called to get the label for display (after encoding). See renderTagAttributes() for details on how attributes are being rendered.

Returns

string: The generated label tag

public static function activeListBox(yii\base\Model $model, string $attribute, array $items, array $options = []): string

Generates a list box.

The selection of the list box is taken from the value of the model attribute.

Parameters

ParameterTypeDescription
$modelyii\base\ModelThe model object
$attributestringThe attribute name or expression. See getAttributeName() for the format about attribute expression.
$itemsarrayThe option data items. The array keys are option values, and the array values are the corresponding option labels. The array can also be nested (i.e. some array values are arrays too). For each sub-array, an option group will be generated whose label is the key associated with the sub-array. If you have a list of data models, you may convert them into the format described above using ArrayHelper::map(). Note, the values and labels will be automatically HTML-encoded by this method, and the blank spaces in the labels will also be HTML-encoded.
$optionsarrayThe tag options in terms of name-value pairs. The following options are specially handled: - prompt: string, a prompt text to be displayed as the first option. Since version 2.0.11 you can use an array to override the value and to set other tag attributes: [‘text’ => ‘Please select’, ‘options’ => [‘value’ => ‘none’, ‘class’ => ‘prompt’, ‘label’ => ‘Select’]], - options: array, the attributes for the select option tags. The array keys must be valid option values, and the array values are the extra attributes for the corresponding option tags. For example, [ ‘value1’ => [‘disabled’ => true], ‘value2’ => [‘label’ => ‘value 2’], ]; - groups: array, the attributes for the optgroup tags. The structure of this is similar to that of ‘options’, except that the array keys represent the optgroup labels specified in $items. - unselect: string, the value that will be submitted when no option is selected. When this attribute is set, a hidden field will be generated so that if no option is selected in multiple mode, we can still obtain the posted unselect value. - encodeSpaces: bool, whether to encode spaces in option prompt and option value with   character. Defaults to false. - encode: bool, whether to encode option prompt and option value characters. Defaults to true. This option is available since 2.0.3. The rest of the options will be rendered as the attributes of the resulting tag. The values will be HTML-encoded using encode(). If a value is null, the corresponding attribute will not be rendered. See renderTagAttributes() for details on how attributes are being rendered.

Returns

string: The generated list box tag

public static function activePasswordInput(yii\base\Model $model, string $attribute, array $options = []): string

Generates a password input tag for the given model attribute.

This method will generate the “name” and “value” tag attributes automatically for the model attribute unless they are explicitly specified in $options.

Parameters

ParameterTypeDescription
$modelyii\base\ModelThe model object
$attributestringThe attribute name or expression. See getAttributeName() for the format about attribute expression.
$optionsarrayThe tag options in terms of name-value pairs. These will be rendered as the attributes of the resulting tag. The values will be HTML-encoded using encode(). See renderTagAttributes() for details on how attributes are being rendered. The following special options are recognized: - maxlength: integer|boolean, when maxlength is set true and the model attribute is validated by a string validator, the maxlength option will take the max value of StringValidator::$max and [[\yii\validators\StringValidator::length]. This is available since version 2.0.6 and improved taking length into account since version 2.0.42. - placeholder: string|boolean, when placeholder equals true, the attribute label from the $model will be used as a placeholder (this behavior is available since version 2.0.14).

Returns

string: The generated input tag

public static function activeRadio(yii\base\Model $model, string $attribute, array $options = []): string

Generates a radio button tag together with a label for the given model attribute.

This method will generate the “checked” tag attribute according to the model attribute value.

Parameters

ParameterTypeDescription
$modelyii\base\ModelThe model object
$attributestringThe attribute name or expression. See getAttributeName() for the format about attribute expression.
$optionsarrayThe tag options in terms of name-value pairs. See booleanInput() for details about accepted attributes.

Returns

string: The generated radio button tag

public static function activeRadioList(yii\base\Model $model, string $attribute, array $items, array $options = []): string

Generates a list of radio buttons.

A radio button list is like a checkbox list, except that it only allows single selection. The selection of the radio buttons is taken from the value of the model attribute.

Parameters

ParameterTypeDescription
$modelyii\base\ModelThe model object
$attributestringThe attribute name or expression. See getAttributeName() for the format about attribute expression.
$itemsarrayThe data item used to generate the radio buttons. The array keys are the radio values, and the array values are the corresponding labels.
$optionsarrayOptions (name => config) for the radio button list container tag. The following options are specially handled: - tag: string|false, the tag name of the container element. False to render radio button without container. See also tag(). - unselect: string, the value that should be submitted when none of the radio buttons is selected. You may set this option to be null to prevent default value submission. If this option is not set, an empty string will be submitted. - encode: boolean, whether to HTML-encode the checkbox labels. Defaults to true. This option is ignored if item option is set. - separator: string, the HTML code that separates items. - itemOptions: array, the options for generating the radio button tag using radio(). - item: callable, a callback that can be used to customize the generation of the HTML code corresponding to a single item in $items. The signature of this callback must be: function ($index, $label, $name, $checked, $value) where $index is the zero-based index of the radio button in the whole list; $label is the label for the radio button; and $name, $value and $checked represent the name, value and the checked status of the radio button input. See renderTagAttributes() for details on how attributes are being rendered.

Returns

string: The generated radio button list

public static function activeTextarea(yii\base\Model $model, string $attribute, array $options = []): string

Generates a textarea tag for the given model attribute.

The model attribute value will be used as the content in the textarea.

Parameters

ParameterTypeDescription
$modelyii\base\ModelThe model object
$attributestringThe attribute name or expression. See getAttributeName() for the format about attribute expression.
$optionsarrayThe tag options in terms of name-value pairs. These will be rendered as the attributes of the resulting tag. The values will be HTML-encoded using encode(). See renderTagAttributes() for details on how attributes are being rendered. The following special options are recognized: - maxlength: integer|boolean, when maxlength is set true and the model attribute is validated by a string validator, the maxlength option will take the max value of StringValidator::$max and [[\yii\validators\StringValidator::length]. This is available since version 2.0.6 and improved taking length into account since version 2.0.42. - placeholder: string|boolean, when placeholder equals true, the attribute label from the $model will be used as a placeholder (this behavior is available since version 2.0.14).

Returns

string: The generated textarea tag

public static function activeTextInput(yii\base\Model $model, string $attribute, array $options = []): string

Generates a text input tag for the given model attribute.

This method will generate the “name” and “value” tag attributes automatically for the model attribute unless they are explicitly specified in $options.

Parameters

ParameterTypeDescription
$modelyii\base\ModelThe model object
$attributestringThe attribute name or expression. See getAttributeName() for the format about attribute expression.
$optionsarrayThe tag options in terms of name-value pairs. These will be rendered as the attributes of the resulting tag. The values will be HTML-encoded using encode(). See renderTagAttributes() for details on how attributes are being rendered. The following special options are recognized: - maxlength: integer|boolean, when maxlength is set true and the model attribute is validated by a string validator, the maxlength option will take the max value of StringValidator::$max and [[\yii\validators\StringValidator::length]. This is available since version 2.0.3 and improved taking length into account since version 2.0.42. - placeholder: string|boolean, when placeholder equals true, the attribute label from the $model will be used as a placeholder (this behavior is available since version 2.0.14).

Returns

string: The generated input tag

public static function addCssClass(array &$options, string|array $class): mixed

Adds a CSS class (or several classes) to the specified options.

If the CSS class is already in the options, it will not be added again. If class specification at given options is an array, and some class placed there with the named (string) key, overriding of such key will have no effect. For example:

$options = ['class' => ['persistent' => 'initial']];
Html::addCssClass($options, ['persistent' => 'override']);
var_dump($options['class']); // outputs: array('persistent' => 'initial');

Parameters

ParameterTypeDescription
$optionsarrayThe options to be modified.
$classstring|arrayThe CSS class(es) to be added

Returns

mixed

See also

public static function addCssStyle(array &$options, string|array $style, bool $overwrite = true): mixed

Adds the specified CSS style to the HTML options.

If the options already contain a style element, the new style will be merged with the existing one. If a CSS property exists in both the new and the old styles, the old one may be overwritten if $overwrite is true.

For example,

Html::addCssStyle($options, 'width: 100px; height: 200px');

Parameters

ParameterTypeDescription
$optionsarrayThe HTML options to be modified.
$stylestring|arrayThe new style string (e.g. 'width: 100px; height: 200px') or array (e.g. ['width' => '100px', 'height' => '200px']).
$overwriteboolWhether to overwrite existing CSS properties if the new style contain them too.

Returns

mixed

See also

public static function beginForm(array|string $action = '', string $method = 'post', array $options = []): string

Generates a form start tag.

Parameters

ParameterTypeDescription
$actionarray|stringThe form action URL. This parameter will be processed by Url::to().
$methodstringThe form submission method, such as “post”, “get”, “put”, “delete” (case-insensitive). Since most browsers only support “post” and “get”, if other methods are given, they will be simulated using “post”, and a hidden input will be added which contains the actual method type. See Request::$methodParam for more details.
$optionsarrayThe tag options in terms of name-value pairs. These will be rendered as the attributes of the resulting tag. The values will be HTML-encoded using encode(). If a value is null, the corresponding attribute will not be rendered. See renderTagAttributes() for details on how attributes are being rendered. Special options: - csrf: whether to generate the CSRF hidden input. Defaults to true.

Returns

string: The generated form start tag.

See also

public static function beginTag(string|bool|null $name, array $options = []): string

Generates a start tag.

Parameters

ParameterTypeDescription
$namestring|bool|nullThe tag name. If $name is null or false, the corresponding content will be rendered without any tag.
$optionsarrayThe tag options in terms of name-value pairs. These will be rendered as the attributes of the resulting tag. The values will be HTML-encoded using encode(). If a value is null, the corresponding attribute will not be rendered. See renderTagAttributes() for details on how attributes are being rendered.

Returns

string: The generated start tag

See also

public static function button(string $content = 'Button', array $options = []): string

Generates a button tag.

Parameters

ParameterTypeDescription
$contentstringThe content enclosed within the button tag. It will NOT be HTML-encoded. Therefore you can pass in HTML code such as an image tag. If this is is coming from end users, you should consider encode() it to prevent XSS attacks.
$optionsarrayThe tag options in terms of name-value pairs. These will be rendered as the attributes of the resulting tag. The values will be HTML-encoded using encode(). If a value is null, the corresponding attribute will not be rendered. See renderTagAttributes() for details on how attributes are being rendered.

Returns

string: The generated button tag

public static function buttonInput(string|null $label = 'Button', array $options = []): string

Generates an input button.

Parameters

ParameterTypeDescription
$labelstring|nullThe value attribute. If it is null, the value attribute will not be generated.
$optionsarrayThe tag options in terms of name-value pairs. These will be rendered as the attributes of the resulting tag. The values will be HTML-encoded using encode(). If a value is null, the corresponding attribute will not be rendered. See renderTagAttributes() for details on how attributes are being rendered.

Returns

string: The generated button tag

public static function checkbox(string $name, bool $checked = false, array $options = []): string

Generates a checkbox input.

Parameters

ParameterTypeDescription
$namestringThe name attribute.
$checkedboolWhether the checkbox should be checked.
$optionsarrayThe tag options in terms of name-value pairs. See booleanInput() for details about accepted attributes.

Returns

string: The generated checkbox tag

public static function checkboxList(string $name, string|array|null $selection = null, array $items = [], array $options = []): string

Generates a list of checkboxes.

A checkbox list allows multiple selection, like listBox(). As a result, the corresponding submitted value is an array.

Parameters

ParameterTypeDescription
$namestringThe name attribute of each checkbox.
$selectionstring|array|nullThe selected value(s). String for single or array for multiple selection(s).
$itemsarrayThe data item used to generate the checkboxes. The array keys are the checkbox values, while the array values are the corresponding labels.
$optionsarrayOptions (name => config) for the checkbox list container tag. The following options are specially handled: - tag: string|false, the tag name of the container element. False to render checkbox without container. See also tag(). - unselect: string, the value that should be submitted when none of the checkboxes is selected. By setting this option, a hidden input will be generated. - disabled: boolean, whether the generated by unselect option hidden input should be disabled. Defaults to false. This option is available since version 2.0.16. - encode: boolean, whether to HTML-encode the checkbox labels. Defaults to true. This option is ignored if item option is set. - strict: boolean, if $selection is an array and this value is true a strict comparison will be performed on $items keys. Defaults to false. This option is available since 2.0.37. - separator: string, the HTML code that separates items. - itemOptions: array, the options for generating the checkbox tag using checkbox(). - item: callable, a callback that can be used to customize the generation of the HTML code corresponding to a single item in $items. The signature of this callback must be: function ($index, $label, $name, $checked, $value) where $index is the zero-based index of the checkbox in the whole list; $label is the label for the checkbox; and $name, $value and $checked represent the name, value and the checked status of the checkbox input, respectively. See renderTagAttributes() for details on how attributes are being rendered.

Returns

string: The generated checkbox list

public static function csrfMetaTags(): string

Generates the meta tags containing CSRF token information.

Returns

string: The generated meta tags

See also

public static function cssFile(array|string $url, array $options = []): string

Generates a link tag that refers to an external CSS file.

Parameters

ParameterTypeDescription
$urlarray|stringThe URL of the external CSS file. This parameter will be processed by Url::to().
$optionsarrayThe tag options in terms of name-value pairs. The following options are specially handled: - condition: specifies the conditional comments for IE, e.g., lt IE 9. When this is specified, the generated link tag will be enclosed within the conditional comments. This is mainly useful for supporting old versions of IE browsers. - noscript: if set to true, link tag will be wrapped into <noscript> tags. The rest of the options will be rendered as the attributes of the resulting link tag. The values will be HTML-encoded using encode(). If a value is null, the corresponding attribute will not be rendered. See renderTagAttributes() for details on how attributes are being rendered.

Returns

string: The generated link tag

See also

public static function cssStyleFromArray(array $style): string

Converts a CSS style array into a string representation.

For example,

print_r(Html::cssStyleFromArray(['width' => '100px', 'height' => '200px']));
// will display: 'width: 100px; height: 200px;'

Parameters

ParameterTypeDescription
$stylearrayThe CSS style array. The array keys are the CSS property names, and the array values are the corresponding CSS property values.

Returns

string: The CSS style string. If the CSS style is empty, a null will be returned.

public static function cssStyleToArray(string $style): array

Converts a CSS style string into an array representation.

The array keys are the CSS property names, and the array values are the corresponding CSS property values.

For example,

print_r(Html::cssStyleToArray('width: 100px; height: 200px;'));
// will display: ['width' => '100px', 'height' => '200px']

Parameters

ParameterTypeDescription
$stylestringThe CSS style string

Returns

array: The array representation of the CSS style

public static function decode(string $content): string

Decodes special HTML entities back to the corresponding characters.

This is the opposite of encode().

Parameters

ParameterTypeDescription
$contentstringThe content to be decoded

Returns

string: The decoded content

See also

public static function dropDownList(string $name, string|bool|array|null $selection = null, array $items = [], array $options = []): string

Generates a drop-down list.

Parameters

ParameterTypeDescription
$namestringThe input name
$selectionstring|bool|array|nullThe selected value(s). String/boolean for single or array for multiple selection(s).
$itemsarrayThe option data items. The array keys are option values, and the array values are the corresponding option labels. The array can also be nested (i.e. some array values are arrays too). For each sub-array, an option group will be generated whose label is the key associated with the sub-array. If you have a list of data models, you may convert them into the format described above using ArrayHelper::map(). Note, the values and labels will be automatically HTML-encoded by this method, and the blank spaces in the labels will also be HTML-encoded.
$optionsarrayThe tag options in terms of name-value pairs. The following options are specially handled: - prompt: string, a prompt text to be displayed as the first option. Since version 2.0.11 you can use an array to override the value and to set other tag attributes: [‘text’ => ‘Please select’, ‘options’ => [‘value’ => ‘none’, ‘class’ => ‘prompt’, ‘label’ => ‘Select’]], - options: array, the attributes for the select option tags. The array keys must be valid option values, and the array values are the extra attributes for the corresponding option tags. For example, [ ‘value1’ => [‘disabled’ => true], ‘value2’ => [‘label’ => ‘value 2’], ]; - groups: array, the attributes for the optgroup tags. The structure of this is similar to that of ‘options’, except that the array keys represent the optgroup labels specified in $items. - encodeSpaces: bool, whether to encode spaces in option prompt and option value with &nbsp; character. Defaults to false. - encode: bool, whether to encode option prompt and option value characters. Defaults to true. This option is available since 2.0.3. - strict: boolean, if $selection is an array and this value is true a strict comparison will be performed on $items keys. Defaults to false. This option is available since 2.0.37. The rest of the options will be rendered as the attributes of the resulting tag. The values will be HTML-encoded using encode(). If a value is null, the corresponding attribute will not be rendered. See renderTagAttributes() for details on how attributes are being rendered.

Returns

string: The generated drop-down list tag

public static function encode(string $content, bool $doubleEncode = true): string

Encodes special characters into HTML entities.

The application charset will be used for encoding.

Parameters

ParameterTypeDescription
$contentstringThe content to be encoded
$doubleEncodeboolWhether to encode HTML entities in $content. If false, HTML entities in $content will not be further encoded.

Returns

string: The encoded content

See also

public static function endForm(): string

Generates a form end tag.

Returns

string: The generated tag

See also

public static function endTag(string|bool|null $name): string

Generates an end tag.

Parameters

ParameterTypeDescription
$namestring|bool|nullThe tag name. If $name is null or false, the corresponding content will be rendered without any tag.

Returns

string: The generated end tag

See also

public static function error(yii\base\Model $model, string $attribute, array $options = []): string

Generates a tag that contains the first validation error of the specified model attribute.

Note that even if there is no validation error, this method will still return an empty error tag.

Parameters

ParameterTypeDescription
$modelyii\base\ModelThe model object
$attributestringThe attribute name or expression. See getAttributeName() for the format about attribute expression.
$optionsarrayThe tag options in terms of name-value pairs. The values will be HTML-encoded using encode(). If a value is null, the corresponding attribute will not be rendered. The following options are specially handled: - tag: this specifies the tag name. If not set, “div” will be used. See also tag(). - encode: boolean, if set to false then the error message won’t be encoded. - errorSource (since 2.0.14): \Closure|callable, callback that will be called to obtain an error message. The signature of the callback must be: function ($model, $attribute) and return a string. When not set, the $model->getFirstError() method will be called. See renderTagAttributes() for details on how attributes are being rendered.

Returns

string: The generated label tag

public static function errorSummary(yii\base\Model|yii\base\Model[] $models, array $options = []): string

Generates a summary of the validation errors.

If there is no validation error, an empty error summary markup will still be generated, but it will be hidden.

Parameters

ParameterTypeDescription
$modelsyii\base\Model|yii\base\Model[]The model(s) whose validation errors are to be displayed.
$optionsarrayThe tag options in terms of name-value pairs. The following options are specially handled: - header: string, the header HTML for the error summary. If not set, a default prompt string will be used. - footer: string, the footer HTML for the error summary. Defaults to empty string. - encode: boolean, if set to false then the error messages won’t be encoded. Defaults to true. - showAllErrors: boolean, if set to true every error message for each attribute will be shown otherwise only the first error message for each attribute will be shown. Defaults to false. Option is available since 2.0.10. - emptyClass: string, the class name that is added to an empty summary. The rest of the options will be rendered as the attributes of the container tag.

Returns

string: The generated error summary

public static function escapeJsRegularExpression(string $regexp): string

Escapes regular expression to use in JavaScript.

Parameters

ParameterTypeDescription
$regexpstringThe regular expression to be escaped.

Returns

string: The escaped result.

Since

2.0.6

public static function fileInput(string $name, string|null $value = null, array $options = []): string

Generates a file input field.

To use a file input field, you should set the enclosing form’s “enctype” attribute to be “multipart/form-data”. After the form is submitted, the uploaded file information can be obtained via $_FILES[$name] (see PHP documentation).

Parameters

ParameterTypeDescription
$namestringThe name attribute.
$valuestring|nullThe value attribute. If it is null, the value attribute will not be generated.
$optionsarrayThe tag options in terms of name-value pairs. These will be rendered as the attributes of the resulting tag. The values will be HTML-encoded using encode(). If a value is null, the corresponding attribute will not be rendered. See renderTagAttributes() for details on how attributes are being rendered.

Returns

string: The generated file input tag

public static function getAttributeName(string $attribute): string

Returns the real attribute name from the given attribute expression.

An attribute expression is an attribute name prefixed and/or suffixed with array indexes. It is mainly used in tabular data input and/or input of array type. Below are some examples:

  • [0]content is used in tabular data input to represent the “content” attribute for the first model in tabular input;
  • dates[0] represents the first array element of the “dates” attribute;
  • [0]dates[0] represents the first array element of the “dates” attribute for the first model in tabular input.

If $attribute has neither prefix nor suffix, it will be returned back without change.

Parameters

ParameterTypeDescription
$attributestringThe attribute name or expression

Returns

string: The attribute name without prefix and suffix.

Throws

public static function getAttributeValue(yii\base\Model $model, string $attribute): string|array|null

Returns the value of the specified attribute name or expression.

For an attribute expression like [0]dates[0], this method will return the value of $model->dates[0]. See getAttributeName() for more details about attribute expression.

If an attribute value is an instance of ActiveRecordInterface or an array of such instances, the primary value(s) of the AR instance(s) will be returned instead.

Parameters

ParameterTypeDescription
$modelyii\base\ModelThe model object
$attributestringThe attribute name or expression

Returns

string|array|null: The corresponding attribute value

Throws

public static function getInputId(yii\base\Model $model, string $attribute): string

Generates an appropriate input ID for the specified attribute name or expression.

Parameters

ParameterTypeDescription
$modelyii\base\ModelThe model object
$attributestringThe attribute name or expression. See getAttributeName() for explanation of attribute expression.

Returns

string: The generated input ID.

Throws

public static function getInputIdByName(string $name): string

Converts input name to ID.

For example, if $name is Post[content], this method will return post-content.

Parameters

ParameterTypeDescription
$namestringThe input name

Returns

string: The generated input ID

Since

2.0.43

public static function getInputName(yii\base\Model $model, string $attribute): string

Generates an appropriate input name for the specified attribute name or expression.

This method generates a name that can be used as the input name to collect user input for the specified attribute. The name is generated according to the form name of the model and the given attribute name. For example, if the form name of the Post model is Post, then the input name generated for the content attribute would be Post[content].

See getAttributeName() for explanation of attribute expression.

Parameters

ParameterTypeDescription
$modelyii\base\ModelThe model object
$attributestringThe attribute name or expression

Returns

string: The generated input name

Throws

public static function hiddenInput(string $name, string|null $value = null, array $options = []): string

Generates a hidden input field.

Parameters

ParameterTypeDescription
$namestringThe name attribute.
$valuestring|nullThe value attribute. If it is null, the value attribute will not be generated.
$optionsarrayThe tag options in terms of name-value pairs. These will be rendered as the attributes of the resulting tag. The values will be HTML-encoded using encode(). If a value is null, the corresponding attribute will not be rendered. See renderTagAttributes() for details on how attributes are being rendered.

Returns

string: The generated hidden input tag

public static function img(array|string $src, array $options = []): string

Generates an image tag.

Parameters

ParameterTypeDescription
$srcarray|stringThe image URL. This parameter will be processed by Url::to().
$optionsarrayThe tag options in terms of name-value pairs. These will be rendered as the attributes of the resulting tag. The values will be HTML-encoded using encode(). If a value is null, the corresponding attribute will not be rendered. See renderTagAttributes() for details on how attributes are being rendered. Since version 2.0.12 It is possible to pass the srcset option as an array which keys are descriptors and values are URLs. All URLs will be processed by Url::to().

Returns

string: The generated image tag.

public static function input(string $type, string|null $name = null, string|null $value = null, array $options = []): string

Generates an input type of the given type.

Parameters

ParameterTypeDescription
$typestringThe type attribute.
$namestring|nullThe name attribute. If it is null, the name attribute will not be generated.
$valuestring|nullThe value attribute. If it is null, the value attribute will not be generated.
$optionsarrayThe tag options in terms of name-value pairs. These will be rendered as the attributes of the resulting tag. The values will be HTML-encoded using encode(). If a value is null, the corresponding attribute will not be rendered. See renderTagAttributes() for details on how attributes are being rendered.

Returns

string: The generated input tag

public static function jsFile(string $url, array $options = []): string

Generates a script tag that refers to an external JavaScript file.

Parameters

ParameterTypeDescription
$urlstringThe URL of the external JavaScript file. This parameter will be processed by Url::to().
$optionsarrayThe tag options in terms of name-value pairs. The following option is specially handled: - condition: specifies the conditional comments for IE, e.g., lt IE 9. When this is specified, the generated script tag will be enclosed within the conditional comments. This is mainly useful for supporting old versions of IE browsers. The rest of the options will be rendered as the attributes of the resulting script tag. The values will be HTML-encoded using encode(). If a value is null, the corresponding attribute will not be rendered. See renderTagAttributes() for details on how attributes are being rendered.

Returns

string: The generated script tag

See also

public static function label(string $content, string|null $for = null, array $options = []): string

Generates a label tag.

Parameters

ParameterTypeDescription
$contentstringLabel text. It will NOT be HTML-encoded. Therefore you can pass in HTML code such as an image tag. If this is is coming from end users, you should encode() it to prevent XSS attacks.
$forstring|nullThe ID of the HTML element that this label is associated with. If this is null, the “for” attribute will not be generated.
$optionsarrayThe tag options in terms of name-value pairs. These will be rendered as the attributes of the resulting tag. The values will be HTML-encoded using encode(). If a value is null, the corresponding attribute will not be rendered. See renderTagAttributes() for details on how attributes are being rendered.

Returns

string: The generated label tag

public static function listBox(string $name, string|bool|array|null $selection = null, array $items = [], array $options = []): string

Generates a list box.

Parameters

ParameterTypeDescription
$namestringThe input name
$selectionstring|bool|array|nullThe selected value(s). String for single or array for multiple selection(s).
$itemsarrayThe option data items. The array keys are option values, and the array values are the corresponding option labels. The array can also be nested (i.e. some array values are arrays too). For each sub-array, an option group will be generated whose label is the key associated with the sub-array. If you have a list of data models, you may convert them into the format described above using ArrayHelper::map(). Note, the values and labels will be automatically HTML-encoded by this method, and the blank spaces in the labels will also be HTML-encoded.
$optionsarrayThe tag options in terms of name-value pairs. The following options are specially handled: - prompt: string, a prompt text to be displayed as the first option. Since version 2.0.11 you can use an array to override the value and to set other tag attributes: [‘text’ => ‘Please select’, ‘options’ => [‘value’ => ‘none’, ‘class’ => ‘prompt’, ‘label’ => ‘Select’]], - options: array, the attributes for the select option tags. The array keys must be valid option values, and the array values are the extra attributes for the corresponding option tags. For example, [ ‘value1’ => [‘disabled’ => true], ‘value2’ => [‘label’ => ‘value 2’], ]; - groups: array, the attributes for the optgroup tags. The structure of this is similar to that of ‘options’, except that the array keys represent the optgroup labels specified in $items. - unselect: string, the value that will be submitted when no option is selected. When this attribute is set, a hidden field will be generated so that if no option is selected in multiple mode, we can still obtain the posted unselect value. - encodeSpaces: bool, whether to encode spaces in option prompt and option value with &nbsp; character. Defaults to false. - encode: bool, whether to encode option prompt and option value characters. Defaults to true. This option is available since 2.0.3. - strict: boolean, if $selection is an array and this value is true a strict comparison will be performed on $items keys. Defaults to false. This option is available since 2.0.37. The rest of the options will be rendered as the attributes of the resulting tag. The values will be HTML-encoded using encode(). If a value is null, the corresponding attribute will not be rendered. See renderTagAttributes() for details on how attributes are being rendered.

Returns

string: The generated list box tag

public static function mailto(string $text, string|null $email = null, array $options = []): string

Generates a mailto hyperlink.

Parameters

ParameterTypeDescription
$textstringLink body. It will NOT be HTML-encoded. Therefore you can pass in HTML code such as an image tag. If this is coming from end users, you should consider encode() it to prevent XSS attacks.
$emailstring|nullEmail address. If this is null, the first parameter (link body) will be treated as the email address and used.
$optionsarrayThe tag options in terms of name-value pairs. These will be rendered as the attributes of the resulting tag. The values will be HTML-encoded using encode(). If a value is null, the corresponding attribute will not be rendered. See renderTagAttributes() for details on how attributes are being rendered.

Returns

string: The generated mailto link

public static function ol(array|Traversable $items, array $options = []): string

Generates an ordered list.

Parameters

ParameterTypeDescription
$itemsarray|TraversableThe items for generating the list. Each item generates a single list item. Note that items will be automatically HTML encoded if $options['encode'] is not set or true.
$optionsarrayOptions (name => config) for the radio button list. The following options are supported: - encode: boolean, whether to HTML-encode the items. Defaults to true. This option is ignored if the item option is specified. - itemOptions: array, the HTML attributes for the li tags. This option is ignored if the item option is specified. - item: callable, a callback that is used to generate each individual list item. The signature of this callback must be: function ($item, $index) where $index is the array key corresponding to $item in $items. The callback should return the whole list item tag. See renderTagAttributes() for details on how attributes are being rendered.

Returns

string: The generated ordered list. An empty string is returned if $items is empty.

public static function passwordInput(string $name, string|null $value = null, array $options = []): string

Generates a password input field.

Parameters

ParameterTypeDescription
$namestringThe name attribute.
$valuestring|nullThe value attribute. If it is null, the value attribute will not be generated.
$optionsarrayThe tag options in terms of name-value pairs. These will be rendered as the attributes of the resulting tag. The values will be HTML-encoded using encode(). If a value is null, the corresponding attribute will not be rendered. See renderTagAttributes() for details on how attributes are being rendered.

Returns

string: The generated password input tag

public static function radio(string $name, bool $checked = false, array $options = []): string

Generates a radio button input.

Parameters

ParameterTypeDescription
$namestringThe name attribute.
$checkedboolWhether the radio button should be checked.
$optionsarrayThe tag options in terms of name-value pairs. See booleanInput() for details about accepted attributes.

Returns

string: The generated radio button tag

public static function radioList(string $name, string|array|null $selection = null, array $items = [], array $options = []): string

Generates a list of radio buttons.

A radio button list is like a checkbox list, except that it only allows single selection.

Parameters

ParameterTypeDescription
$namestringThe name attribute of each radio button.
$selectionstring|array|nullThe selected value(s). String for single or array for multiple selection(s).
$itemsarrayThe data item used to generate the radio buttons. The array keys are the radio button values, while the array values are the corresponding labels.
$optionsarrayOptions (name => config) for the radio button list container tag. The following options are specially handled: - tag: string|false, the tag name of the container element. False to render radio buttons without container. See also tag(). - unselect: string, the value that should be submitted when none of the radio buttons is selected. By setting this option, a hidden input will be generated. - disabled: boolean, whether the generated by unselect option hidden input should be disabled. Defaults to false. This option is available since version 2.0.16. - encode: boolean, whether to HTML-encode the checkbox labels. Defaults to true. This option is ignored if item option is set. - strict: boolean, if $selection is an array and this value is true a strict comparison will be performed on $items keys. Defaults to false. This option is available since 2.0.37. - separator: string, the HTML code that separates items. - itemOptions: array, the options for generating the radio button tag using radio(). - item: callable, a callback that can be used to customize the generation of the HTML code corresponding to a single item in $items. The signature of this callback must be: function ($index, $label, $name, $checked, $value) where $index is the zero-based index of the radio button in the whole list; $label is the label for the radio button; and $name, $value and $checked represent the name, value and the checked status of the radio button input, respectively. See renderTagAttributes() for details on how attributes are being rendered.

Returns

string: The generated radio button list

public static function removeCssClass(array &$options, string|array $class): mixed

Removes a CSS class from the specified options.

Parameters

ParameterTypeDescription
$optionsarrayThe options to be modified.
$classstring|arrayThe CSS class(es) to be removed

Returns

mixed

See also

public static function removeCssStyle(array &$options, string|array $properties): mixed

Removes the specified CSS style from the HTML options.

For example,

Html::removeCssStyle($options, ['width', 'height']);

Parameters

ParameterTypeDescription
$optionsarrayThe HTML options to be modified.
$propertiesstring|arrayThe CSS properties to be removed. You may use a string if you are removing a single property.

Returns

mixed

See also

public static function renderSelectOptions(string|array|bool|null $selection, array $items, array &$tagOptions = []): string

Renders the option tags that can be used by dropDownList() and listBox().

Parameters

ParameterTypeDescription
$selectionstring|array|bool|nullThe selected value(s). String/boolean for single or array for multiple selection(s).
$itemsarrayThe option data items. The array keys are option values, and the array values are the corresponding option labels. The array can also be nested (i.e. some array values are arrays too). For each sub-array, an option group will be generated whose label is the key associated with the sub-array. If you have a list of data models, you may convert them into the format described above using ArrayHelper::map(). Note, the values and labels will be automatically HTML-encoded by this method, and the blank spaces in the labels will also be HTML-encoded.
$tagOptionsarrayThe $options parameter that is passed to the dropDownList() or listBox() call. This method will take out these elements, if any: “prompt”, “options” and “groups”. See more details in dropDownList() for the explanation of these elements.

Returns

string: The generated list options

public static function renderTagAttributes(array $attributes): string

Renders the HTML tag attributes.

Attributes whose values are of boolean type will be treated as boolean attributes.

Attributes whose values are null will not be rendered.

The values of attributes will be HTML-encoded using encode().

aria and data attributes get special handling when they are set to an array value. In these cases, the array will be “expanded” and a list of ARIA/data attributes will be rendered. For example, 'aria' => ['role' => 'checkbox', 'value' => 'true'] would be rendered as aria-role="checkbox" aria-value="true".

If a nested data value is set to an array, it will be JSON-encoded. For example, 'data' => ['params' => ['id' => 1, 'name' => 'yii']] would be rendered as data-params='{"id":1,"name":"yii"}'.

Parameters

ParameterTypeDescription
$attributesarrayAttributes to be rendered. The attribute values will be HTML-encoded using encode().

Returns

string: The rendering result. If the attributes are not empty, they will be rendered into a string with a leading white space (so that it can be directly appended to the tag name in a tag). If there is no attribute, an empty string will be returned.

See also

public static function resetButton(string $content = 'Reset', array $options = []): string

Generates a reset button tag.

Parameters

ParameterTypeDescription
$contentstringThe content enclosed within the button tag. It will NOT be HTML-encoded. Therefore you can pass in HTML code such as an image tag. If this is is coming from end users, you should consider encode() it to prevent XSS attacks.
$optionsarrayThe tag options in terms of name-value pairs. These will be rendered as the attributes of the resulting tag. The values will be HTML-encoded using encode(). If a value is null, the corresponding attribute will not be rendered. See renderTagAttributes() for details on how attributes are being rendered.

Returns

string: The generated reset button tag

public static function resetInput(string|null $label = 'Reset', array $options = []): string

Generates a reset input button.

Parameters

ParameterTypeDescription
$labelstring|nullThe value attribute. If it is null, the value attribute will not be generated.
$optionsarrayThe attributes of the button tag. The values will be HTML-encoded using encode(). Attributes whose value is null will be ignored and not put in the tag returned. See renderTagAttributes() for details on how attributes are being rendered.

Returns

string: The generated button tag

public static function script(string $content, array $options = []): string

Generates a script tag.

Parameters

ParameterTypeDescription
$contentstringThe script content
$optionsarrayThe tag options in terms of name-value pairs. These will be rendered as the attributes of the resulting tag. The values will be HTML-encoded using encode(). If a value is null, the corresponding attribute will not be rendered. See renderTagAttributes() for details on how attributes are being rendered.

Returns

string: The generated script tag

public static function style(string $content, array $options = []): string

Generates a style tag.

Parameters

ParameterTypeDescription
$contentstringThe style content
$optionsarrayThe tag options in terms of name-value pairs. These will be rendered as the attributes of the resulting tag. The values will be HTML-encoded using encode(). If a value is null, the corresponding attribute will not be rendered. See renderTagAttributes() for details on how attributes are being rendered.

Returns

string: The generated style tag

public static function submitButton(string $content = 'Submit', array $options = []): string

Generates a submit button tag.

Be careful when naming form elements such as submit buttons. According to the jQuery documentation there are some reserved names that can cause conflicts, e.g. submit, length, or method.

Parameters

ParameterTypeDescription
$contentstringThe content enclosed within the button tag. It will NOT be HTML-encoded. Therefore you can pass in HTML code such as an image tag. If this is is coming from end users, you should consider encode() it to prevent XSS attacks.
$optionsarrayThe tag options in terms of name-value pairs. These will be rendered as the attributes of the resulting tag. The values will be HTML-encoded using encode(). If a value is null, the corresponding attribute will not be rendered. See renderTagAttributes() for details on how attributes are being rendered.

Returns

string: The generated submit button tag

public static function submitInput(string|null $label = 'Submit', array $options = []): string

Generates a submit input button.

Be careful when naming form elements such as submit buttons. According to the jQuery documentation there are some reserved names that can cause conflicts, e.g. submit, length, or method.

Parameters

ParameterTypeDescription
$labelstring|nullThe value attribute. If it is null, the value attribute will not be generated.
$optionsarrayThe tag options in terms of name-value pairs. These will be rendered as the attributes of the resulting tag. The values will be HTML-encoded using encode(). If a value is null, the corresponding attribute will not be rendered. See renderTagAttributes() for details on how attributes are being rendered.

Returns

string: The generated button tag

public static function tag(string|bool|null $name, string $content = '', array $options = []): string

Generates a complete HTML tag.

Parameters

ParameterTypeDescription
$namestring|bool|nullThe tag name. If $name is null or false, the corresponding content will be rendered without any tag.
$contentstringThe content to be enclosed between the start and end tags. It will not be HTML-encoded. If this is coming from end users, you should consider encode() it to prevent XSS attacks.
$optionsarrayThe HTML tag attributes (HTML options) in terms of name-value pairs. These will be rendered as the attributes of the resulting tag. The values will be HTML-encoded using encode(). If a value is null, the corresponding attribute will not be rendered. For example when using ['class' => 'my-class', 'target' => '_blank', 'value' => null] it will result in the html attributes rendered like this: class="my-class" target="_blank". See renderTagAttributes() for details on how attributes are being rendered.

Returns

string: The generated HTML tag

See also

public static function textarea(string $name, string $value = '', array $options = []): string

Generates a text area input.

Parameters

ParameterTypeDescription
$namestringThe input name
$valuestringThe input value. Note that it will be encoded using encode().
$optionsarrayThe tag options in terms of name-value pairs. These will be rendered as the attributes of the resulting tag. The values will be HTML-encoded using encode(). If a value is null, the corresponding attribute will not be rendered. See renderTagAttributes() for details on how attributes are being rendered. The following special options are recognized: - doubleEncode: whether to double encode HTML entities in $value. If false, HTML entities in $value will not be further encoded. This option is available since version 2.0.11.

Returns

string: The generated text area tag

public static function textInput(string $name, string|null $value = null, array $options = []): string

Generates a text input field.

Parameters

ParameterTypeDescription
$namestringThe name attribute.
$valuestring|nullThe value attribute. If it is null, the value attribute will not be generated.
$optionsarrayThe tag options in terms of name-value pairs. These will be rendered as the attributes of the resulting tag. The values will be HTML-encoded using encode(). If a value is null, the corresponding attribute will not be rendered. See renderTagAttributes() for details on how attributes are being rendered.

Returns

string: The generated text input tag

public static function ul(array|Traversable $items, array $options = []): string

Generates an unordered list.

Parameters

ParameterTypeDescription
$itemsarray|TraversableThe items for generating the list. Each item generates a single list item. Note that items will be automatically HTML encoded if $options['encode'] is not set or true.
$optionsarrayOptions (name => config) for the radio button list. The following options are supported: - encode: boolean, whether to HTML-encode the items. Defaults to true. This option is ignored if the item option is specified. - separator: string, the HTML code that separates items. Defaults to a simple newline ("\n"). This option is available since version 2.0.7. - itemOptions: array, the HTML attributes for the li tags. This option is ignored if the item option is specified. - item: callable, a callback that is used to generate each individual list item. The signature of this callback must be: function ($item, $index) where $index is the array key corresponding to $item in $items. The callback should return the whole list item tag. See renderTagAttributes() for details on how attributes are being rendered.

Returns

string: The generated unordered list. An empty list tag will be returned if $items is empty.

protected static function activeBooleanInput(string $type, yii\base\Model $model, string $attribute, array $options = []): string

Generates a boolean input This method is mainly called by activeCheckbox() and activeRadio().

Parameters

ParameterTypeDescription
$typestringThe input type. This can be either radio or checkbox.
$modelyii\base\ModelThe model object
$attributestringThe attribute name or expression. See getAttributeName() for the format about attribute expression.
$optionsarrayThe tag options in terms of name-value pairs. See booleanInput() for details about accepted attributes.

Returns

string: The generated input element

Since

2.0.9

protected static function activeListInput(string $type, yii\base\Model $model, string $attribute, array $items, array $options = []): string

Generates a list of input fields.

This method is mainly called by activeListBox(), activeRadioList() and activeCheckboxList().

Parameters

ParameterTypeDescription
$typestringThe input type. This can be ‘listBox’, ‘radioList’, or ‘checkBoxList’.
$modelyii\base\ModelThe model object
$attributestringThe attribute name or expression. See getAttributeName() for the format about attribute expression.
$itemsarrayThe data item used to generate the input fields. The array keys are the input values, and the array values are the corresponding labels.
$optionsarrayOptions (name => config) for the input list. The supported special options depend on the input type specified by $type.

Returns

string: The generated input list

protected static function booleanInput(string $type, string $name, bool $checked = false, array $options = []): string

Generates a boolean input.

Parameters

ParameterTypeDescription
$typestringThe input type. This can be either radio or checkbox.
$namestringThe name attribute.
$checkedboolWhether the checkbox should be checked.
$optionsarrayThe tag options in terms of name-value pairs. The following options are specially handled: - uncheck: string, the value associated with the uncheck state of the checkbox. When this attribute is present, a hidden input will be generated so that if the checkbox is not checked and is submitted, the value of this attribute will still be submitted to the server via the hidden input. - label: string, a label displayed next to the checkbox. It will NOT be HTML-encoded. Therefore you can pass in HTML code such as an image tag. If this is is coming from end users, you should encode() it to prevent XSS attacks. When this option is specified, the checkbox will be enclosed by a label tag. - labelOptions: array, the HTML attributes for the label tag. Do not set this option unless you set the “label” option. The rest of the options will be rendered as the attributes of the resulting checkbox tag. The values will be HTML-encoded using encode(). If a value is null, the corresponding attribute will not be rendered. See renderTagAttributes() for details on how attributes are being rendered.

Returns

string: The generated checkbox tag

Since

2.0.9

protected static function setActivePlaceholder(yii\base\Model $model, string $attribute, array &$options = []): mixed

Generate placeholder from model attribute label.

Parameters

ParameterTypeDescription
$modelyii\base\ModelThe model object
$attributestringThe attribute name or expression. See getAttributeName() for the format about attribute expression.
$optionsarrayThe tag options in terms of name-value pairs. These will be rendered as the attributes of the resulting tag. The values will be HTML-encoded using encode().

Returns

mixed

Since

2.0.14