第一步、接着教程(1)。我们在controllers/ZhyoulunController.php中加入两处,

1)

use app\models\EntryForm;

2)

public function actionEntry()
{
$model = new EntryForm; if ($model->load(Yii::$app->request->post()) && $model->validate())
{
// 验证 $model 收到的数据 // 做些有意义的事 ...
return $this->render('entry-confirm', ['model' => $model]);
}
else
{
// 不管是初始化显示还是数据验证错误
return $this->render('entry', ['model' => $model]);
}
}

文件内容例如以下所看到的:

<?

php
namespace app\controllers; use Yii;
use yii\filters\AccessControl;
use yii\web\Controller;
use yii\filters\VerbFilter; //注意这一行,和models/entryform.php相应
use app\models\EntryForm; //类名ZhyoulunController必须和文件名称相应
class ZhyoulunController extends Controller
{
public function actionHelloworld()
{
return $this->renderPartial('helloworld');
//return $this->render('helloworld');
} /*
该操作首先创建了一个 EntryForm 对象。
然后尝试从 $_POST 搜集用户提交的数据。
并确保用户提交的是有效数据。
*/
public function actionEntry()
{
$model = new EntryForm; if ($model->load(Yii::$app->request->post()) && $model->validate())
{
// 验证 $model 收到的数据 // 做些有意义的事 ...
return $this->render('entry-confirm', ['model' => $model]);
}
else
{
// 不管是初始化显示还是数据验证错误
return $this->render('entry', ['model' => $model]);
}
}
}

第二步、在models目录中新建EntryForm.php

<?

php

namespace app\models;

use yii\base\Model;

class EntryForm extends Model
{
public $name;
public $email; public function rules()
{
//name 和 email 值都是必须的
//mail 的值必须满足 email 地址验证
return [
[['name', 'email'], 'required'],
['email', 'email'],
];
}
}

第三步、在views/zhyoulun目录中新建entry.php和entry-confirm.php,作为显示效果和提交结果

entry.php

<?

php
use yii\helpers\Html;
use yii\widgets\ActiveForm;
?>
<?php $form = ActiveForm::begin(); ? > <?= $form->field($model, 'name') ?> <? = $form->field($model, 'email') ?> <div class="form-group">
<? = Html::submitButton('Submit', ['class' => 'btn btn-primary']) ? >
</div> <? php ActiveForm::end(); ?>

entry-confirm.php

<?

php
use yii\helpers\Html;
?>
<p>你输入的信息例如以下所看到的:</p> <ul>
<li><label>Name</label>: <?= Html::encode($model->name) ? ></li>
<li><label>Email</label>: <?= Html::encode($model->email) ?></li>
</ul>

第四步、訪问网址http://localhost/basic/web/index.php?r=zhyoulun/entry

输入信息

提交

參考:http://www.yiichina.com/guide/2/start-forms

转载请注明出处:http://blog.csdn.net/zhyoulun/article/details/40454181

Yii Framework2.0开发教程(2)使用表单Form的更多相关文章

  1. Yii Framework2.0开发教程(5)数据库mysql性能

    继续<Yii Framework2.0开发教程(3)数据库mysql入门> 首先给予一定的尊重yii2数据库支持引进 Yii 基于 PHP's PDO一个成熟的数据库访问层的建立.它提供了 ...

  2. Yii Framework2.0开发教程(3)数据库mysql入门

    沿用教程(2)的代码 第一步.在本地mysql数据库中新建数据库zhyoulun 第二步.在数据库中新建表并插入若干条数据 CREATE TABLE `country` ( `code` CHAR(2 ...

  3. Yii Framework2.0开发教程(1)配置环境及第一个应用HelloWorld

    准备工作: 我用的开发环境是windows下的apache+mysql+php 编辑器不知道该用哪个好.临时用dreamweaver吧 我自己的http://localhost/相应的根文件夹是E:/ ...

  4. Yii Framework2.0开发教程(4)在yii中定义全局变量

    在yii中定义全局变量最好的地方是入口脚本处.也就是web目录中的index.php文件 比如我们在defined('YII_ENV') or define('YII_ENV', 'dev');后写上 ...

  5. Yii Framework2.0开发教程(10)配合mysql数据库实现用户登录

    1.首先在mysql创建一个存用户的表格 create table test_user ( user_id bigint(20) unsigned not null auto_increment co ...

  6. flask使用原生ajax、不使用表单(Form)上传文件

    〇.知识点 jquery ajax 文档告诉你可以使用默认的 application/x-www-form-urlencoded, multipart/form-data, or text/plain ...

  7. ASP.NET Aries 高级开发教程:表单检测字段是否已存(番外篇)

    前言: 昨天刚好有人问了这个问题,因此就针对这个问题,补上一篇吧. 正文: 如图:在用户编辑列表中,用户名是会自动检测是否已存在的. 具体对应的Html内容如下: <label><e ...

  8. yii2.0 控制器方法 视图表单 Form表单处理

    假设我们在ArticleController.php下面的actionForm方法中来处理提交的表单 新建立一个 views/Article/article-form.php文件用来作为输入表单 &l ...

  9. Yii 2.0版本调试输出SQL语句

    项目是基于框架Yii 2.0开发的. 今天梳理一些数据统计功能代码的时候,想把当前运行的sql语句打印出来,然后放到navicat工具里面运行,并分析一下运行效率和调优方案,之前大部分时候都是写增加. ...

随机推荐

  1. window.showModalDialog刷新父窗口和本窗口的方法及注意

    window.showModalDialog刷新父窗口和本窗口的方法及注意:   一.刷新父窗口的方法:    A.使用window.returnValue给父窗口传值,然后根据值判断是否刷新. 在w ...

  2. java中如何计算两个时间段的月份差

    直接计算,先取得两个日期的年份和月份,月份差=(第二年份-第一年份)*12 + 第二月份-第一月份

  3. ADO接口

    转自百度文库 ADO中最重要的对象有三个:Connection.Recordset和Command,分别表示连接对象.记录集对象和命令对象. 三个对象对应的智能指针分别是:_ConnectionPtr ...

  4. Android应用开发提高篇(3)-----传感器(Sensor)编程

    链接地址:http://www.cnblogs.com/lknlfy/archive/2012/02/29/2373420.html 一.概述 Android支持的传感器种类越来越多了,这确实是一件可 ...

  5. jQuery json数据处理

    一种是使用jQuery的ajax函数  另一种是使用getJSON函数 使用ajax函数的时候 对于返回值类型dataType 亲自指定为json格式 就无需自己手动处理格式 $.ajax({ url ...

  6. 转:什么是FOUC?如何避免FOUC?

    今天了解了一个新的名词叫做 FOUC 浏览器样式闪烁,之前也听说过一些类似的东西,比如样式突变等等,但这东西竟然有学名的.. 什么是FOUC(文档样式短暂失效)?如果使用import方法对CSS进行导 ...

  7. android使用全局变量的两种方法

         在我们使用android编写程序的时候,少不了想利用全局变量,但是面向对象语言和过程语言区别很大,不再是include就可以的.这里我写了使用全局变量的两种方法: 1.使用applicati ...

  8. rman备份优化思路

    本章不讲rman备份原理.仅仅提供一些思路 1.oracle11g 选择压缩算法为中级: 2.添加rman备份的通道. 以上两种做法.添加CPU的利用率,降低IO 3.指定rate參数 这个rate和 ...

  9. Objective-c Category(类别)

    category是Objective-c里面最常用的功能之一. category可以为已经存在的类增加方法,而不需要增加一个子类. 类别接口的标准语法格式如下: #import "类名.h& ...

  10. [小知识点]IE6下不支持:hover的解决方法

    在网上百度到的解决办法,感觉不错,和大家分享一下. 在CSS样式里加一句代码"body{behavior:url("文件夹/csshover.htc");}"即 ...