**YII**系列三建立表单
来源:互联网 发布:软件测试必备工具 编辑:程序博客网 时间:2024/06/01 10:58
>数据流图
>创建表单过程中的收获
>>创建模型类的作用
创建模型即类
按规则自动验证,通过rule()函数
通过小部件自动生成html,widget小部件
>>命名空间
namespace声明命名空间
use调用类和模板和小部件
>>感觉controller就像大脑核心,负责各个数据处理,数据分流,文件调配
>>控制器类的方法实现
在Jikecontroller里面定义了Jikecontroller类继承了controller类想当于控制器
里面含有action()的方法,可以处理数据。
>>模板类的属性和方法
在models里定义了JikeForm类继承了model类,想当于数据库类
里面有很多数据和方法。
>>创建表单使用到的函数及其意义
Yii:$app->request->post()访问输入表单的函数
model->rule()的方法,可以验证表单数据类型
model->load()给对象赋值,括号中填写对象对应的值
model->validate()验证model对象的数据是否合法
$this->render('index-two',['model'=>$model])第一参数,视图中渲染的文件,第二个参数,传给视图的数据。
>controllers/JikeController.php
<span style="font-size:14px;"><?phpnamespace app\controllers;//controllers的命名空间,就是对应的app文件夹路径use Yii;use yii\web\Controller;//使用控制器基类use app\models\JikeForm;//使用模板来处理数据class JikeController extends Controller{ public function actionIndex(){ $model = new JikeForm();//对model里面的类进行初始化 if($model->load(Yii::$app->request->post())&&$model->validate()) { return $this->render('index-two',['model'=>$model]);//如果接收到数据则交给index2进行渲染 }else{ return $this->render('index',['model'=>$model]);//如果没有收到数据,则交个index1进行渲染 } }}?></span>
//控制核心代码,负责联系各个文件,实现了数据的分流,控制核心
//注意命名规范,文件名为与类名相同,方法名以action开始
//注意使用命名空间namespace,注意包含基类的头文件use
//由于controllers负责整理整个文件的关系,所以要包含模板文件
>models/JikeForm.php
<span style="font-size:14px;"><?phpnamespace app\models;// 模板的命名空间use Yii;use yii\base\Model; //使用模板的基类class JikeForm extends Model{ public $name; public $pass; public $email; public $sex; public $edu; public $hobby; public $info; public function rules(){ //可以验证URL等很多内容,rule()函数的详细规则查看手册 return [ [['name','pass','email','sex','edu','hobby','info'],'required'], ['email','email','message'=>'shiyouxiang'], ['name','string','length'=>[2,10]] ]; } public function attributeLabel(){ return[ 'name'=>'名称', 'pass'=>'密码', 'sex'=>'性别', 'email'=>'邮箱' ]; } }</span>
//使用键值对构成的数组进行赋值,使用键值对构成的数组进行性质的定义
<span style="font-size:14px;"><?php//生成表单,使用小部件//表单的形式,就按这个来别想太多use yii\helpers\Html;use yii\widgets\ActiveForm;?><?php $form = ActiveForm::begin();?> <?= $form -> field($model,'name')->textInput(['style'=>'width:200px;'])?> <?= $form -> field($model,'pass')->passwordInput(['style'=>'width:200px;'])?> <?= $form -> field($model,'email')->textInput(['style'=>'width:200px;'])?> <?= $form -> field($model,'sex')->radioList(['1'=>'male','2'=>'female'])?> <?= $form -> field($model,'edu')->dropDownList(['1'=>'大学','2'=>'中学','3'=>'小学'],['style'=>'width:200px;'])?> <?= $form -> field($model,'hobby')->checkboxList(['篮球'=>'篮球','排球'=>'排球'])?> <?= $form -> field($model,'info')->textarea(['rows'=>3,'style'=>'width:200px;'])?> <div class = "form-group"> <?= Html::submitButton('Submit',['class'=>'btn btn-primary'])?><?php $form = ActiveForm::end();?></span>//键值对说哦名属性,注意这种形式 get
>views/Jike/index2.php
<span style="font-size:14px;"><?php use yii\helpers\Html //有一个很严重的问题,index向controller里边返回的是数组中的键名而非键值?><ul><li> <?php echo $model -> name;?></li><li> <?php echo $model -> sex;?></li><li> <?= Html::encode($model -> email)?></li><li> <?php echo $model -> edu;?></li><li> <?= Html::encode($model -> info)?></li></ul></span>
//两种输出方式 前者是php里面的echo
//后者<?= ?>等价于<?php echo ?>,中间使用html的方式进行输出
- **YII**系列三建立表单
- Yii 表单交互的三种方式
- Yii 表单交互的三种方式
- yii 表单
- PHP框架Yii系列教程(三):集成Redis
- 使用Yii建立博客
- YII建立多语言
- yii blog 建立数据库
- Yii建立组件
- yii 登录表单
- yii表单验证
- Yii 使用表单
- 关于YII生成表单
- yii表单验证
- Yii表单验证
- [php] Yii表单验证
- yii表单验证大全
- yii表单验证规则
- 【POJ2299】Ultra-Quicksort-逆序对
- Linux 系统 /var 目录
- 文章标题
- java数据结构之二叉树
- Android 属性动画(Property Animation) 完全解析 (下)
- **YII**系列三建立表单
- mysql-行锁的实现
- python模块
- SMI Network Management Private Enterprise Codes 查询URL
- Android带你实现门票布局效果
- BD___C++中数组和指针的区别
- Java正则表达式Pattern和Matcher类详解
- SVN版本库修改URL路径或者IP地址
- curl上传文件