Yii2.0 ActiveForm用法大全

ActiveForm实例

<?php
use yii\bootstrap\ActiveForm;
use yii\helpers\Html;
$this->title = 'Yii 中文网';

?>
<div class="row">
    <div class="col-lg-9">
    <?php $form = ActiveForm::begin(['id' => 'form-signup']); ?>

        <?= $form->field($model, 'test1')->label('测试Label') ?>

        <?= $form->field($model, 'test2')->hint('测试hint')->label('测试提示'); ?>
        
        <!-- input(type) type即为input类型 text password等-->
        <?= $form->field($model, 'test3')->input('text')->label('测试input') ?>

        <?= $form->field($model, 'test3')->textInput()->label('测试文本框') ?>
        
        <?= $form->field($model, 'test3')->hiddenInput()->label('测试隐藏框') ?>
        
        <?= $form->field($model, 'test3')->passwordInput()->label('测试密码框') ?>       
        
        <?= $form->field($model, 'test3')->textarea()->label('测试文本域') ?>
        
        <?= $form->field($model, 'test3')->fileInput()->label('测试文件上传') ?>
        
        <?= $form->field($model, 'test3')->radio()->label('测试radio') ?>
        
        <?= $form->field($model, 'test3')->checkbox()->label('测试checkbox') ?>
             
        <?= $form->field($model, 'test3')->listBox(['0'=>'box1','1'=>'box2'])->label('测试listBox') ?>
        
        <?= $form->field($model, 'test3')->checkboxList(['0'=>'box1','1'=>'box2'])->label('测试checkboxList') ?>
        
        <?= $form->field($model, 'test3')->radioList(['0'=>'radio1','1'=>'radio2'])->label('测试radioList') ?>
        
        <?= $form->field($model, 'test3')->dropDownList(['0'=>'下拉1','1'=>'下拉2']) ?>
        
        <?= $form->field($model,'test3')->widget(yii\captcha\Captcha::className())->label('测试widget')?>
        
        <div class="form-group">
            <?= Html::submitButton('按钮', ['class' => 'btn btn-primary', 'name' => 'signup-button']) ?>
        </div>

    <?php ActiveForm::end(); ?>
    </div>
</div>
ActiveForm高级用法(自定义写法)
use yii\bootstrap\ActiveForm;

$form = ActiveForm::begin(['layout' => 'horizontal']);

// 隐藏form的标签 
echo $form->field($model, 'demo', [
    'inputOptions' => [
         'placeholder' => $model->getAttributeLabel('demo'),
     ],
 ])->label(false);
 
 // 内联 radio list
 echo $form->field($model, 'demo')->inline()->radioList($items);
 
 //水平模式控制规模大小
 echo $form->field($model, 'demo', [
     'horizontalCssClasses' => [
         'wrapper' => 'col-sm-2',
     ]
 ]);
 
 // 除了'default(默认)' 布局 你还可以用 'template' 制定特定的布局:
 echo $form->field($model, 'demo', [
    'template' => '{label} <div class="row"><div class="col-sm-4">{input}{error}{hint}</div></div>'
 ]);
 
 // 输入框模板配置
 echo $form->field($model, 'demo', [
    'inputTemplate' => '<div class="input-group"><span class="input-group-addon">@</span>{input}</div>',
 ]);
 
 ActiveForm::end();

ActiveForm表单参数:

[[\yii\widgets\ActiveField]]. 加强版的Bootstrap 3

这个类添加了一些有用的功能到 [[\yii\widgets\ActiveField|ActiveField]] 在不同的形式布局中提供各种bootstrap3的表单域:

[[inputTemplate]] 是一个用来呈现复杂输入的可选模板,例如输入组

[[horizontalCssClasses]] 以横向形式定义了css网络格以增加标签,包装和错误提示

[[inline]]/[[inline()]] 被用于提供内联的[[checkboxList()]] 和[[radioList()]]

[[enableError]] 被设置为‘false’以禁用错误

[[enableLabel]] 被设置为`false` 以禁用标签

[[label()]] 和boolean值一起使用,来启用和禁用标签


也有一些新的占位符,你可以用在 [[template]] 结构中:

- `{beginLabel}`: 开始标签

- `{labelTitle}`: 标签的标题,和 `{beginLabel}`/`{endLabel}`一起使用

- `{endLabel}`: 结束标签

- `{beginWrapper}`: 开始包装标签

- `{endWrapper}`: 关闭包装标签


包装标签仅用于某些布局和表单元素.

请注意,某些元素使用了 [[template]]的轻微不同的默认值和其他选项.

你可以重写这些预定义模板复选框, radio buttons, checkboxLists和 radioLists 在 [[\yii\widgets\ActiveForm::fieldConfig|fieldConfig]] 的

[[\yii\widgets\ActiveForm]]:

[[checkboxTemplate]] 在默认布局复选框模板

[[radioTemplate]] 默认布局中的radio button模板 

[[horizontalCheckboxTemplate]] 水平布局的 checkboxes模块

[[horizontalRadioTemplate]] 水平布局的 radio buttons 模块

[[inlineCheckboxListTemplate]] 内联的 checkboxLists模块

[[inlineRadioListTemplate]] 内联的 radioLists模块


阅读更多
个人分类: yii php
上一篇YII2 URL美化以及隐藏入口文件index.php
下一篇angular ng-cloak解决屏幕闪烁问题
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭