Class yii\bootstrap\ActiveField
| Inheritance | yii\bootstrap\ActiveField » yii\widgets\ActiveField » yii\base\Component » yii\base\Object |
|---|---|
| Implements | yii\base\Configurable |
| Available since version | 2.0 |
| Source Code | https://github.com/yiisoft/yii2-bootstrap/blob/master/ActiveField.php |
A Bootstrap 3 enhanced version of yii\widgets\ActiveField.
This class adds some useful features to ActiveField to render all sorts of Bootstrap 3 form fields in different form layouts:
- $inputTemplate is an optional template to render complex inputs, for example input groups
- $horizontalCssClasses defines the CSS grid classes to add to label, wrapper, error and hint in horizontal forms
- inline()/inline() is used to render inline checkboxList() and radioList()
-
$enableError can be set to
falseto disable to the error -
$enableLabel can be set to
falseto disable to the label -
label() can be used with a
booleanargument to enable/disable the label
There are also some new placeholders that you can use in the $template configuration:
-
{beginLabel}: the opening label tag -
{labelTitle}: the label title for use with{beginLabel}/{endLabel} -
{endLabel}: the closing label tag -
{beginWrapper}: the opening wrapper tag -
{endWrapper}: the closing wrapper tag
The wrapper tag is only used for some layouts and form elements.
Note that some elements use slightly different defaults for $template and other options. You may want to override those predefined templates for checkboxes, radio buttons, checkboxLists and radioLists in the fieldConfig of the yii\widgets\ActiveForm:
- $checkboxTemplate the template for checkboxes in default layout
- $radioTemplate the template for radio buttons in default layout
- $horizontalCheckboxTemplate the template for checkboxes in horizontal layout
- $horizontalRadioTemplate the template for radio buttons in horizontal layout
- $inlineCheckboxListTemplate the template for inline checkboxLists
- $inlineRadioListTemplate the template for inline radioLists
Example:
use yii\bootstrap\ActiveForm;
$form = ActiveForm::begin(['layout' => 'horizontal']);
// Form field without label
echo $form->field($model, 'demo', [
'inputOptions' => [
'placeholder' => $model->getAttributeLabel('demo'),
],
])->label(false);
// Inline radio list
echo $form->field($model, 'demo')->inline()->radioList($items);
// Control sizing in horizontal mode
echo $form->field($model, 'demo', [
'horizontalCssClasses' => [
'wrapper' => 'col-sm-2',
]
]);
// With 'default' layout you would use 'template' to size a specific field:
echo $form->field($model, 'demo', [
'template' => '{label} <div class="row"><div class="col-sm-4">{input}{error}{hint}</div></div>'
]);
// Input group
echo $form->field($model, 'demo', [
'inputTemplate' => '<div class="input-group"><span class="input-group-addon">@</span>{input}</div>',
]);
ActiveForm::end();
See also:
Public Properties
| Property | Type | Description | Defined By |
|---|---|---|---|
| $addAriaAttributes | boolean | Adds aria HTML attributes aria-required and aria-invalid for inputs | yii\widgets\ActiveField |
| $attribute | string | The model attribute that this field is associated with. | yii\widgets\ActiveField |
| $behaviors | yii\base\Behavior[] | List of behaviors attached to this component | yii\base\Component |
| $checkboxTemplate | string | The template for checkboxes in default layout | yii\bootstrap\ActiveField |
| $enableAjaxValidation | boolean | Whether to enable AJAX-based data validation. | yii\widgets\ActiveField |
| $enableClientValidation | boolean | Whether to enable client-side data validation. | yii\widgets\ActiveField |
| $enableError | boolean | Whether to render the error. | yii\bootstrap\ActiveField |
| $enableLabel | boolean | Whether to render the label. | yii\bootstrap\ActiveField |
| $errorOptions | array | The default options for the error tags. | yii\widgets\ActiveField |
| $form | yii\widgets\ActiveForm | The form that this field is associated with. | yii\widgets\ActiveField |
| $hintOptions | array | The default options for the hint tags. | yii\widgets\ActiveField |
| $horizontalCheckboxTemplate | string | The template for checkboxes in horizontal layout | yii\bootstrap\ActiveField |
| $horizontalCssClasses | null|array | CSS grid classes for horizontal layout. | yii\bootstrap\ActiveField |
| $horizontalRadioTemplate | string | The template for radio buttons in horizontal layout | yii\bootstrap\ActiveField |
| $inline | boolean | Whether to render checkboxList() and radioList() inline. | yii\bootstrap\ActiveField |
| $inlineCheckboxListTemplate | string | The template for inline checkboxLists | yii\bootstrap\ActiveField |
| $inlineRadioListTemplate | string | The template for inline radioLists | yii\bootstrap\ActiveField |
| $inputOptions | array | The default options for the input tags. | yii\widgets\ActiveField |
| $inputTemplate | string|null | Optional template to render the {input} placeholder content | yii\bootstrap\ActiveField |
| $labelOptions | array | The default options for the label tags. | yii\widgets\ActiveField |
| $model | yii\base\Model | The data model that this field is associated with. | yii\widgets\ActiveField |
| $options | array | The HTML attributes (name-value pairs) for the field container tag. | yii\widgets\ActiveField |
| $parts | array | Different parts of the field (e.g. input, label). | yii\widgets\ActiveField |
| $radioTemplate | string | The template for radios in default layout | yii\bootstrap\ActiveField |
| $selectors | array | The jQuery selectors for selecting the container, input and error tags. | yii\widgets\ActiveField |
| $template | string | The template that is used to arrange the label, the input field, the error message and the hint text. | yii\widgets\ActiveField |
| $validateOnBlur | boolean | Whether to perform validation when the input field loses focus. | yii\widgets\ActiveField |
| $validateOnChange | boolean | Whether to perform validation when the value of the input field is changed. | yii\widgets\ActiveField |
| $validateOnType | boolean | Whether to perform validation while the user is typing in the input field. | yii\widgets\ActiveField |
| $validationDelay | integer | Number of milliseconds that the validation should be delayed when the user types in the field and $validateOnType is set true. | yii\widgets\ActiveField |
| $wrapperOptions | array | Options for the wrapper tag, used in the {beginWrapper} placeholder | yii\bootstrap\ActiveField |
Public Methods
| Method | Description | Defined By |
|---|---|---|
| __call() | Calls the named method which is not a class method. | yii\base\Component |
| __clone() | This method is called after the object is created by cloning an existing one. | yii\base\Component |
| __construct() | Constructor. | yii\bootstrap\ActiveField |
| __get() | Returns the value of a component property. | yii\base\Component |
| __isset() | Checks if a property is set, i.e. defined and not null. | yii\base\Component |
| __set() | Sets the value of a component property. | yii\base\Component |
| __toString() | PHP magic method that returns the string representation of this object. | yii\widgets\ActiveField |
| __unset() | Sets a component property to be null. | yii\base\Component |
| attachBehavior() | Attaches a behavior to this component. | yii\base\Component |
| attachBehaviors() | Attaches a list of behaviors to the component. | yii\base\Component |
| begin() | Renders the opening tag of the field container. | yii\widgets\ActiveField |
| behaviors() | Returns a list of behaviors that this component should behave as. | yii\base\Component |
| canGetProperty() | Returns a value indicating whether a property can be read. | yii\base\Component |
| canSetProperty() | Returns a value indicating whether a property can be set. | yii\base\Component |
| checkbox() | Renders a checkbox. | yii\bootstrap\ActiveField |
| checkboxList() | Renders a list of checkboxes. | yii\bootstrap\ActiveField |
| className() | Returns the fully qualified name of this class. | yii\base\Object |
| detachBehavior() | Detaches a behavior from the component. | yii\base\Component |
| detachBehaviors() | Detaches all behaviors from the component. | yii\base\Component |
| dropDownList() | Renders a drop-down list. | yii\widgets\ActiveField |
| end() | Renders the closing tag of the field container. | yii\widgets\ActiveField |
| ensureBehaviors() | Makes sure that the behaviors declared in behaviors() are attached to this component. | yii\base\Component |
| error() | Generates a tag that contains the first validation error of $attribute. | yii\widgets\ActiveField |
| fileInput() | Renders a file input. | yii\widgets\ActiveField |
| getBehavior() | Returns the named behavior object. | yii\base\Component |
| getBehaviors() | Returns all behaviors attached to this component. | yii\base\Component |
| hasEventHandlers() | Returns a value indicating whether there is any handler attached to the named event. | yii\base\Component |
| hasMethod() | Returns a value indicating whether a method is defined. | yii\base\Component |
| hasProperty() | Returns a value indicating whether a property is defined for this component. | yii\base\Component |
| hint() | Renders the hint tag. | yii\widgets\ActiveField |
| init() | Initializes the object. | yii\base\Object |
| inline() | yii\bootstrap\ActiveField | |
| input() | Renders an input tag. | yii\widgets\ActiveField |
| label() | Generates a label tag for $attribute. | yii\bootstrap\ActiveField |
| listBox() | Renders a list box. | yii\widgets\ActiveField |
| off() | Detaches an existing event handler from this component. | yii\base\Component |
| on() | Attaches an event handler to an event. | yii\base\Component |
| passwordInput() | Renders a password input. | yii\widgets\ActiveField |
| radio() | Renders a radio button. | yii\bootstrap\ActiveField |
| radioList() | Renders a list of radio buttons. | yii\bootstrap\ActiveField |
| render() | Renders the whole field. | yii\bootstrap\ActiveField |
| staticControl() | Renders Bootstrap static form control. | yii\bootstrap\ActiveField |
| textInput() | Renders a text input. | yii\widgets\ActiveField |
| textarea() | Renders a text area. | yii\widgets\ActiveField |
| trigger() | Triggers an event. | yii\base\Component |
| widget() | Renders a widget as the input of the field. | yii\widgets\ActiveField |
Protected Methods
| Method | Description | Defined By |
|---|---|---|
| addAriaAttributes() | Adds aria attributes to the input options | yii\widgets\ActiveField |
| adjustLabelFor() | Adjusts the for attribute for the label based on the input options. | yii\widgets\ActiveField |
| createLayoutConfig() | yii\bootstrap\ActiveField | |
| getClientOptions() | Returns the JS options for the field. | yii\widgets\ActiveField |
| getInputId() | Returns the HTML id of the input element of this form field. | yii\widgets\ActiveField |
| isAjaxValidationEnabled() | Checks if ajax validation enabled for the field | yii\widgets\ActiveField |
| isClientValidationEnabled() | Checks if client validation enabled for the field | yii\widgets\ActiveField |
| renderLabelParts() | yii\bootstrap\ActiveField |
Property Details
$checkboxTemplate public property
The template for checkboxes in default layout
public string $checkboxTemplate = "<div class=\"checkbox\">\n{beginLabel}\n{input}\n{labelTitle}\n{endLabel}\n{error}\n{hint}\n</div>"
$enableError public property
Whether to render the error. Default is true except for layout inline.
public boolean $enableError = true
$enableLabel public property
Whether to render the label. Default is true.
public boolean $enableLabel = true
$horizontalCheckboxTemplate public property
The template for checkboxes in horizontal layout
public string $horizontalCheckboxTemplate = "{beginWrapper}\n<div class=\"checkbox\">\n{beginLabel}\n{input}\n{labelTitle}\n{endLabel}\n</div>\n{error}\n{endWrapper}\n{hint}"
$horizontalCssClasses public property
CSS grid classes for horizontal layout. This must be an array with these keys:
- 'offset' the offset grid class to append to the wrapper if no label is rendered
- 'label' the label grid class
- 'wrapper' the wrapper grid class
- 'error' the error grid class
- 'hint' the hint grid class
public null|array $horizontalCssClasses = null
$horizontalRadioTemplate public property
The template for radio buttons in horizontal layout
public string $horizontalRadioTemplate = "{beginWrapper}\n<div class=\"radio\">\n{beginLabel}\n{input}\n{labelTitle}\n{endLabel}\n</div>\n{error}\n{endWrapper}\n{hint}"
$inline public property
Whether to render checkboxList() and radioList() inline.
public boolean $inline = false
$inlineCheckboxListTemplate public property
The template for inline checkboxLists
public string $inlineCheckboxListTemplate = "{label}\n{beginWrapper}\n{input}\n{error}\n{endWrapper}\n{hint}"
$inlineRadioListTemplate public property
The template for inline radioLists
public string $inlineRadioListTemplate = "{label}\n{beginWrapper}\n{input}\n{error}\n{endWrapper}\n{hint}"
$inputTemplate public property
Optional template to render the {input} placeholder content
public string|null $inputTemplate = null
$radioTemplate public property
The template for radios in default layout
public string $radioTemplate = "<div class=\"radio\">\n{beginLabel}\n{input}\n{labelTitle}\n{endLabel}\n{error}\n{hint}\n</div>"
$wrapperOptions public property
Options for the wrapper tag, used in the {beginWrapper} placeholder
public array $wrapperOptions = []
Method Details
__construct() public method
Constructor.
The default implementation does two things:
- Initializes the object with the given configuration
$config. - Call init().
If this method is overridden in a child class, it is recommended that
- the last parameter of the constructor is a configuration array, like
$confighere. - call the parent implementation at the end of the constructor.
| public void __construct ( $config = [] ) | ||
|---|---|---|
| $config | array |
Name-value pairs that will be used to initialize the object properties |
checkbox() public method
Renders a checkbox.
This method will generate the checked tag attribute according to the model attribute value.
| public $this checkbox ( $options = [], $enclosedByLabel = true ) | ||
|---|---|---|
| $options | array |
The tag options in terms of name-value pairs. The following options are specially handled:
The rest of the options will be rendered as the attributes of the resulting tag. The values will be HTML-encoded using yii\bootstrap\Html::encode(). If a value is If you set a custom |
| $enclosedByLabel | boolean |
Whether to enclose the checkbox within the label. If |
| return | $this |
The field object itself. |
checkboxList() public method
Renders 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.
| public $this checkboxList ( $items, $options = [] ) | ||
|---|---|---|
| $items | array |
The data item used to generate the checkboxes. The array values are the labels, while the array keys are the corresponding checkbox values. |
| $options | array |
Options (name => config) for the checkbox list. For the list of available options please refer to the |
| return | $this |
The field object itself. |
createLayoutConfig() protected method
| protected array createLayoutConfig ( $instanceConfig ) | ||
|---|---|---|
| $instanceConfig | array |
The configuration passed to this instance's constructor |
| return | array |
The layout specific default configuration for this instance |
inline() public method
| public $this inline ( $value = true ) | ||
|---|---|---|
| $value | boolean |
Whether to render a inline list |
| return | $this |
The field object itself Make sure you call this method before checkboxList() or radioList() to have any effect. |
label() public method
Generates a label tag for $attribute.
| public $this label ( $label = null, $options = [] ) | ||
|---|---|---|
| $label | null|string|false |
The label to use. If |
| $options | null|array |
The tag options in terms of name-value pairs. It will be merged with $labelOptions. The options will be rendered as the attributes of the resulting tag. The values will be HTML-encoded using yii\bootstrap\Html::encode(). If a value is |
| return | $this |
The field object itself. |
radio() public method
Renders a radio button.
This method will generate the checked tag attribute according to the model attribute value.
| public $this radio ( $options = [], $enclosedByLabel = true ) | ||
|---|---|---|
| $options | array |
The tag options in terms of name-value pairs. The following options are specially handled:
The rest of the options will be rendered as the attributes of the resulting tag. The values will be HTML-encoded using yii\bootstrap\Html::encode(). If a value is If you set a custom |
| $enclosedByLabel | boolean |
Whether to enclose the radio within the label. If |
| return | $this |
The field object itself. |
radioList() public method
Renders 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.
| public $this radioList ( $items, $options = [] ) | ||
|---|---|---|
| $items | array |
The data item used to generate the radio buttons. The array values are the labels, while the array keys are the corresponding radio values. |
| $options | array |
Options (name => config) for the radio button list. For the list of available options please refer to the |
| return | $this |
The field object itself. |
render() public method
Renders the whole field.
This method will generate the label, error tag, input tag and hint tag (if any), and assemble them into HTML according to $template.
| public string render ( $content = null ) | ||
|---|---|---|
| $content | string|callable |
The content within the field container. If function ($field) {
return $html;
}
|
| return | string |
The rendering result. |
renderLabelParts() protected method
| protected void renderLabelParts ( $label = null, $options = [] ) | ||
|---|---|---|
| $label | string|null |
The label or null to use model label |
| $options | array |
The tag options |
staticControl() public method (available since version 2.0.5)
Renders Bootstrap static form control.
See also http://getbootstrap.com/css/#forms-controls-static.
| public $this staticControl ( $options = [] ) | ||
|---|---|---|
| $options | array |
The tag options in terms of name-value pairs. These will be rendered as the attributes of the resulting tag. There are also a special options:
|
| return | $this |
The field object itself |
© 2008–2017 by Yii Software LLC
Licensed under the three clause BSD license.
http://www.yiiframework.com/doc-2.0/yii-bootstrap-activefield.html