'horizontal']) * ``` * * This will set default values for the [[ActiveField]] * to render horizontal form fields. In particular the [[ActiveField::template|template]] * is set to `{label} {beginWrapper} {input} {error} {endWrapper} {hint}` and the * [[ActiveField::horizontalCssClasses|horizontalCssClasses]] are set to: * * ```php * [ * '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]]: * * ```php * $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 ActiveField for details on the [[fieldConfig]] options * @see http://getbootstrap.com/css/#forms * * @author Michael Härtl * @since 2.0 */ class ActiveForm extends \yii\widgets\ActiveForm { /** * @var string the default field class name when calling [[field()]] to create a new field. * @see fieldConfig */ public $fieldClass = 'yii\bootstrap\ActiveField'; /** * @var array HTML attributes for the form tag. Default is `[]`. */ public $options = []; /** * @var string 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 \yii\bootstrap\ActiveField for details on Bootstrap 3 field configuration */ public $layout = 'default'; /** * {@inheritdoc} */ 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(); } /** * {@inheritdoc} * @return ActiveField the created ActiveField object */ public function field($model, $attribute, $options = []) { return parent::field($model, $attribute, $options); } }