[moka同学笔记]yii2.0表单的使用

1.创建model   /biaodan.php

 1 <?php
 2 /**
 3  * Created by PhpStorm.
 4  * User: moka同学
 5  * Date: 2016/08/05
 6  * Time: 10:26
 7  */
 8 namespace appmodels;
 9 
10 use Yii;
11 use yiiaseModel;
12 class Biaodan extends Model{
13     public $name;
14     public $pass;
15     public $email;
16     public $sex;
17     public $edu;
18     public $hobby;
19     public $info;
20 
21     //设置验证规则
22     public function rules()
23     {
24         return [
25             [['name','pass','email','sex','edu','hobby','info'],'required'],
26             ['email','email','message'=>'这里是邮箱'],
27             ['name','string','length'=>[2,10]]
28         ];
29     }
30 
31     //定义表单标签
32     public function attributeLabels()
33     {
34         return [
35             'name'=>'名称',
36             'email'=>'邮箱',
37             'pass'=>'密码',
38             'edu'=>'教育',
39             'sex'=>'性别',
40             'hobby'=>'爱好',
41             'info'=>'简介'
42         ];
43     }
44 }
45 ?>

注:

自定义标签,用于显示表单标签

rules规则的创建,用于验证表单数据

2.控制器 BiaodanController.php

 1 <?php
 2 /**
 3  * Created by PhpStorm.
 4  * User: moka同学
 5  * Date: 2016/08/05
 6  * Time: 10:23
 7  */
 8 namespace appcontrollers;
 9 
10 use appmodelsBiaodan;
11 use yiiwebController;
12 
13 class BiaodanController extends Controller{
14     public $layout = "home";
15     public function actionIndex(){
16 //        print_r($_POST);die();
17         $model = new Biaodan();
18         //如果有表单值就需要通过验证
19         if($model->load(Yii::$app->request->post()) && $model->validate()){
20             return $this->render('index-two',['model'=>$model]);
21         }else{
22             return $this->render('index',['model'=>$model]);
23         }
24     }
25 }
26 ?>

注:

Yii::$app->request->post() 获取表单提交过来的数据

3.视图 index.php
 1 <?php
 2 use yiihelpersHtml;
 3 use yiiwidgetsActiveForm;
 4 ?>
 5 <?php $form = ActiveForm::begin(); ?>
 6 <?=$form->field($model,'name')->textInput(['style'=>'200px;'])?>
 7 <?=$form->field($model,'pass')->passwordInput(['style'=>'200px;'])?>
 8 <?=$form->field($model,'email')->textInput(['style'=>'200px;'])?>
 9 <?=$form->field($model,'sex')->radioList(['1'=>'男','2'=>'女'])?>
10 <?=$form->field($model,'edu')->dropDownList(['1'=>'大学','2'=>'中学','3'=>'小学'],['style'=>'200px;'])?>
11 <?=$form->field($model,'hobby')->checkboxList(['篮球'=>'篮球','排球'=>'排球','乒乓球'=>'乒乓球'])?>
12 <?=$form->field($model,'info')->textarea(['rows'=>3,'style'=>'400px;'])?>
13 <div class="form-group">
14     <?=Html::submitButton('提交',['class'=>'btn btn-primary'])?>
15 </div>
16 <?php $form = ActiveForm::end(); ?>

注:

视图也可以使用gii去生成,但是还是需要更改很多地方

index-two.php (可以忽略)

1 <?php
2 use yiihelpersHtml;
3 ?>
4 <ul>
5     <li><label><?=$model->name;?></label></li>   <!--//原生写法-->
6     <li><label><?=Html::encode($model->pass)?></label></li> <!--//小部件写法-->
7 </ul>

注:

表单未完,还有很多bootstrap样式用于表单中

以上~~

注:~    转载请注明出处。QQ1727728211

我生活的地方,我为何要生活。
原文地址:https://www.cnblogs.com/hsd1727728211/p/5748173.html