一、需包含组件
1.控制器
use Yii;
use yii\web\Controller;
use app\models\对应Form的模型;
2.视图
use yii\helpers\Html;
use yii\widgets\ActiveForm;
二、生成表单
<?php $form = ActiveForm::begin(); ?>
<?= $form->field($model, 'name') ?>
<?= $form->field($model, 'sex')->dropDownList(['0'=>'男','1'=>'女']) ?>
<?= $form->field($model, 'content')->textarea() ?>
<div class="form-group">
<?= Html::submitButton('提交', ['class' => 'btn btn-info']) ?>
</div>
<?php ActiveForm::end(); ?>
$model = new EntryForm();
if ($model->validate()) {
// 验证成功!
} else {
// 失败!
// 使用 $model->getErrors() 获取错误详情
}
namespace app\models;
use yii\base\Model;
class AddForm extends Model{
public $name; //前台所包含的字段
public $sex;
public $content;
public function rules(){
return [
[['name', 'sex', 'content'], 'required'],
['name','string','length'=>[2,10]],
//['email','eamil','message'=>'这里必须邮箱'],
//['name','url','defaultScheme'=>'http','message'=>'xxx'],
];
}
public function attributeLabels(){
return [
<pre name="code" class="php"> <span style="font-family: Arial, Helvetica, sans-serif;">'name'=>'姓名',</span>
'sex'=>'性别', 'content'=>'内容' ;}
五、VIEW处理
<?php $form = ActiveForm::begin(); ?> //默认样式<span style="font-family: Arial, Helvetica, sans-serif;"> </span>
<span style="font-family: Arial, Helvetica, sans-serif;"> <?= $form->field($model, 'name') ?></span>
<?= $form->field($model, 'sex')->dropDownList(['0'=>'男','1'=>'女']) ?>
<?= $form->field($model, 'content')->textarea() ?>
<div class="form-group">
<?= Html::submitButton('提交', ['class' => 'btn btn-info']) ?>
</div>
<?php ActiveForm::end(); ?>
六、HTML页面
<form class="form-horizontal" action="" method="post">
<div class="form-group">
<label for="name" class="col-sm-2 control-label">昵称:</label>
<div class="col-sm-10">
<input type="text" class="form-control" name="name" id="name" placeholder="输入昵称">
</div>
</div>
<div class="form-group">
<label for="name" class="col-sm-2 control-label">性别:</label>
<div class="col-sm-10">
<select name="sex" class="form-control">
<option>男</option>
<option>女</option>
<option>未知生物</option>
<option>CP</option>
</select>
</div>
</div>
<div class="form-group">
<label for="name" class="col-sm-2 control-label">留言内容:</label>
<div class="col-sm-10">
<textarea name="content" class="form-control" rows="3"></textarea>
</div>
</div>
<div class="form-group">
<div class="col-sm-offset-4 col-sm-10">
<input class="btn btn-info" type="submit" value="提交">
</div>
</div>
</form>
范例1.:
文本框:textInput();
密码框:passwordInput();
单选框:radio(),radioList();
复选框:checkbox(),checkboxList();
下拉框:dropDownList();
隐藏域:hiddenInput();
文本域:textarea(['rows'=>3]);
文件上传:fileInput();
提交按钮:submitButton();
重置按钮:resetButtun();
<?php
$form = ActiveForm::begin(['action' => ['test/getpost'],'method'=>'post',]); ?>
<? echo $form->field($model, 'username')->textInput(['maxlength' => 20]) ?>
<? echo $form->field($model, 'password')->passwordInput(['maxlength' => 20]) ?>
<? echo $form->field($model, 'sex')->radioList(['1'=>'男','0'=>'女']) ?>
<? echo $form->field($model, 'edu')->dropDownList(['1'=>'大学','2'=>'高中','3'=>'初中'], ['prompt'=>'请选择','style'=>'width:120px']) ?>
<? echo $form->field($model, 'file')->fileInput() ?>
<? echo $form->field($model, 'hobby')->checkboxList(['0'=>'篮球','1'=>'足球','2'=>'羽毛球','3'=>'乒乓球']) ?>
<? echo $form->field($model, 'info')->textarea(['rows'=>3]) ?>
<? echo $form->field($model, 'userid')->hiddenInput(['value'=>3]) ?>
<? echo Html::submitButton('提交', ['class'=>'btn btn-primary','name' =>'submit-button']) ?>
<? echo Html::resetButton('重置', ['class'=>'btn btn-primary','name' =>'submit-button']) ?>
<?php ActiveForm::end(); ?>
*范例转载:http://www.yiichina.com/tutorial/341
范例3:
//$form = ActiveForm::begin(); //默认的FORM样式
$form = ActiveForm::begin([ //对FORM进行样式修改添加
'id' => 'active-form',
'options' => [
'class' => 'form-horizontal',
'enctype' => 'multipart/form-data'
],
])
*范例转载:http://www.kuitao8.com/20150321/3638.shtml
yii\vendor\yiisoft\yii2\widgets\ActiveField.php
yii\vendor\yiisoft\yii2\widgets\ActiveForm.php