Class yii\bootstrap\ActiveForm
Inheritance | yii\bootstrap\ActiveForm » yii\widgets\ActiveForm |
---|---|
Available since extension's version | 2.0 |
Source Code | https://github.com/yiisoft/yii2-bootstrap/blob/master/src/ActiveForm.php |
A Bootstrap 3 enhanced version of \yii\widgets\ActiveForm.
This class mainly adds the $layout property to choose a Bootstrap 3 form layout. So for example to render a horizontal form you would:
use yii\bootstrap\ActiveForm;
$form = ActiveForm::begin(['layout' => 'horizontal'])
This will set default values for the yii\bootstrap\ActiveField
to render horizontal form fields. In particular the ActiveField::template
is set to {label} {beginWrapper} {input} {error} {endWrapper} {hint}
and the
horizontalCssClasses are set to:
[
'offset' => 'col-sm-offset-3',
'label' => 'col-sm-3',
'wrapper' => 'col-sm-6',
'error' => '',
'hint' => 'col-sm-3',
]
To get a different column layout in horizontal mode you can modify those options through fieldConfig:
$form = ActiveForm::begin([
'layout' => 'horizontal',
'fieldConfig' => [
'template' => "{label}\n{beginWrapper}\n{input}\n{hint}\n{error}\n{endWrapper}",
'horizontalCssClasses' => [
'label' => 'col-sm-4',
'offset' => 'col-sm-offset-4',
'wrapper' => 'col-sm-8',
'error' => '',
'hint' => '',
],
],
]);
See also:
- yii\bootstrap\ActiveField for details on the fieldConfig options.
- http://getbootstrap.com/css/#forms
Public Properties
Property | Type | Description | Defined By |
---|---|---|---|
$fieldClass | string | The default field class name when calling field() to create a new field. | yii\bootstrap\ActiveForm |
$layout | string | The form layout. | yii\bootstrap\ActiveForm |
$options | array | HTML attributes for the form tag. | yii\bootstrap\ActiveForm |
Public Methods
Method | Description | Defined By |
---|---|---|
field() | yii\bootstrap\ActiveForm | |
init() | yii\bootstrap\ActiveForm |
Property Details
The default field class name when calling field() to create a new field.
See also \yii\bootstrap\fieldConfig.
The form layout. Either 'default', 'horizontal' or 'inline'. By choosing a layout, an appropriate default field configuration is applied. This will render the form fields with slightly different markup for each layout. You can override these defaults through fieldConfig.
See also yii\bootstrap\ActiveField for details on Bootstrap 3 field configuration.
Method Details
public yii\bootstrap\ActiveField field ( $model, $attribute, $options = [] ) | ||
$model | ||
$attribute | ||
$options | ||
return | yii\bootstrap\ActiveField |
The created ActiveField object |
---|
public function field($model, $attribute, $options = [])
{
return parent::field($model, $attribute, $options);
}
public void init ( ) |
public function init()
{
if (!in_array($this->layout, ['default', 'horizontal', 'inline'])) {
throw new InvalidConfigException('Invalid layout type: ' . $this->layout);
}
if ($this->layout !== 'default') {
Html::addCssClass($this->options, 'form-' . $this->layout);
}
parent::init();
}