The input element with a type attribute whose value is button represents a button with no more semantics.
Instantiate the Button class using Button::widget().
$button = Button::widget();Use the provided methods to set specific attributes for the a element.
// setting class attribute
$button->class('container');Or, use the attributes method to set multiple attributes at once.
$button->attributes(['class' => 'container', 'style' => 'background-color: #eee;']);If you want to include value in the button element, use the value method.
$button->value('MyValue');Generate the HTML output using the render method, for simple instantiation.
$html = $button->render();Or, use the magic __toString method.
$html = (string) $button;Below are examples of common use cases:
// adding multiple attributes
$button->class('external')->value('Myvalue');
// using data attributes
$button->dataAttributes(['analytics' => 'trackClick']);Explore additional methods for setting various attributes such as lang, name, style, title, etc.
Use prefix and suffix methods to add text before and after the button tag, respectively.
// adding a prefix
$html = $button->value('MyValue')->prefix('MyPrefix')->render();
// adding a suffix
$html = $button->value('MyValue')->suffix('MySuffix')->render();The template method allows you to customize the HTML output of the a element.
The following template tags are available:
| Tag | Description |
|---|---|
{prefix} |
The prefix text. |
{tag} |
The a element. |
{suffix} |
The suffix text. |
// using a custom template
$button->template('<div>{tag}</div>');Refer to the Attribute Tests for comprehensive examples.
The following methods are available for setting attributes:
| Method | Description |
|---|---|
ariaDescribedBy() |
Set the aria-describedby attribute. |
ariaLabel() |
Set the aria-label attribute. |
attributes() |
Set multiple attributes at once. |
autofocus() |
Set the autofocus attribute. |
class() |
Set the class attribute. |
dataAttributes() |
Set multiple data-attributes at once. |
disabled() |
Set the disabled attribute. |
form() |
Set the form attribute. |
hidden() |
Set the hidden attribute. |
id() |
Set the id attribute. |
lang() |
Set the lang attribute. |
name() |
Set the name attribute. |
readOnly() |
Set the readonly attribute. |
style() |
Set the style attribute. |
tabIndex() |
Set the tabindex attribute. |
title() |
Set the title attribute. |
value() |
Set the value attribute. |
Refer to the Custom Methods Tests for comprehensive examples.
The following methods are available for customizing the HTML output:
| Method | Description |
|---|---|
container() |
Set enabled or disabled for the container element. |
containerAttributes() |
Set attributes for the container element. |
containerClass() |
Set the class attribute for the container element. |
containerTag() |
Set the tag for the container element. |
prefix() |
Add text before the textarea element. |
prefixContainer() |
Set enabled or disabled for the prefix-container element. |
prefixContainerAttributes() |
Set attributes for the prefix-container element. |
prefixContainerClass() |
Set the class attribute for the prefix-container element. |
prefixContainerTag() |
Set the tag for the prefix-container element. |
render() |
Generates the HTML output. |
suffix() |
Add text after the label element. |
suffixContainer() |
Set enabled or disabled for the suffix-container element. |
suffixContainerAttributes() |
Set attributes for the suffix-container element. |
suffixContainerClass() |
Set the class attribute for the suffix-container element. |
suffixContainerTag() |
Set the tag for the suffix-container element. |
template() |
Set the template for the HTML output. |
widget() |
Instantiates the Button::class. |
|
Refer to the Label Tests for comprehensive examples.
The following methods are available for customizing the HTML output:
| Method | Description |
|---|---|
labelAttributes() |
Set attributes for the label element. |
labelClass() |
Set the class attribute for the label element. |
labelContent() |
Set the content within the label element. |
labelFor() |
Set the for attribute for the label element. |
notLabel() |
Set disabled for the label element. |