Yii Framework2.0开发教程(2)使用表单Form
第一步、接着教程(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的更多相关文章
- Yii Framework2.0开发教程(5)数据库mysql性能
继续<Yii Framework2.0开发教程(3)数据库mysql入门> 首先给予一定的尊重yii2数据库支持引进 Yii 基于 PHP's PDO一个成熟的数据库访问层的建立.它提供了 ...
- Yii Framework2.0开发教程(3)数据库mysql入门
沿用教程(2)的代码 第一步.在本地mysql数据库中新建数据库zhyoulun 第二步.在数据库中新建表并插入若干条数据 CREATE TABLE `country` ( `code` CHAR(2 ...
- Yii Framework2.0开发教程(1)配置环境及第一个应用HelloWorld
准备工作: 我用的开发环境是windows下的apache+mysql+php 编辑器不知道该用哪个好.临时用dreamweaver吧 我自己的http://localhost/相应的根文件夹是E:/ ...
- Yii Framework2.0开发教程(4)在yii中定义全局变量
在yii中定义全局变量最好的地方是入口脚本处.也就是web目录中的index.php文件 比如我们在defined('YII_ENV') or define('YII_ENV', 'dev');后写上 ...
- Yii Framework2.0开发教程(10)配合mysql数据库实现用户登录
1.首先在mysql创建一个存用户的表格 create table test_user ( user_id bigint(20) unsigned not null auto_increment co ...
- flask使用原生ajax、不使用表单(Form)上传文件
〇.知识点 jquery ajax 文档告诉你可以使用默认的 application/x-www-form-urlencoded, multipart/form-data, or text/plain ...
- ASP.NET Aries 高级开发教程:表单检测字段是否已存(番外篇)
前言: 昨天刚好有人问了这个问题,因此就针对这个问题,补上一篇吧. 正文: 如图:在用户编辑列表中,用户名是会自动检测是否已存在的. 具体对应的Html内容如下: <label><e ...
- yii2.0 控制器方法 视图表单 Form表单处理
假设我们在ArticleController.php下面的actionForm方法中来处理提交的表单 新建立一个 views/Article/article-form.php文件用来作为输入表单 &l ...
- Yii 2.0版本调试输出SQL语句
项目是基于框架Yii 2.0开发的. 今天梳理一些数据统计功能代码的时候,想把当前运行的sql语句打印出来,然后放到navicat工具里面运行,并分析一下运行效率和调优方案,之前大部分时候都是写增加. ...
随机推荐
- oracle 获取系统时间(转)
Oracle中如何获取系统当前时间 select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') from dual; ORACLE里获取一个时间的年.季. ...
- iOS合并静态库文件
具体命令如下(在控制台输入如下命令): lipo -create 其中一个要合并的静态库 另一个要合并的静态库 -output 合并后的静态库
- 加装 ImageMagick 性能更佳!
1. 下载 Download ImageMagick 以此文件ImageMagick-6.9.1-10-Q16-x64-dll-win进行,第二次开发的研发 2. 安装 Install ImageMa ...
- SVN 无法连接主机:由于目标计算机积极拒绝,无法连接
问题:使用追溯功能时因为时间太长,所以强行关闭了SVN;当再次连接的时候就发现不能连接到SVN了,错误消息: 无法连接主机:由于目标计算机积极拒绝,无法连接 解决:重启一下服务器的SVN 服务就可以了
- Android 开发笔记 “Sqlite Cursor 使用”
使用过 SQLite 数据库的童鞋对 Cursor 应该不陌生,如果你是搞.net 开发你大可以把Cursor理解成 Ado.net 中的数据集合相当于dataReader.今天特地将它单独拿出来谈, ...
- 全新安装mysql最新版本
写在前面: 下面写的东西只是最近安装的一个说明,是在系统中没存在mysql的情况下安装的,后期会根据官方文档写一个详细有价值的文档 安装原理:利用mysql官方的mysql_apt-repositor ...
- iphone抓取移动网络报文的方法
iphone抓取移动网络报文的方法 对iPhone进行越狱,网上有很多教程,这里不做说明.越狱后会有cydia这个app,首先对用户身份进行设置,选用开发者身份.打开这个应用,搜索openssh,找到 ...
- 输出1到最大的N位数
题目:输入数字n,按顺序输出从1最大的n位10进制数.比如输入3,则输出1.2.3一直到最大的3位数即999. 分析:这是一道很有意思的题目.看起来很简单,其实里面却有不少的玄机. 应聘者在解决这个问 ...
- JS于,子类调用父类的函数
概要 JS虽然没有直接有面向对象的特性,但还是能prototype为了模拟面向对象的特性,如继承和多态.而大多数面向对象的语言(例如C++.Java等一下)相比,JS为了实现面向对象还是有点繁琐,抽象 ...
- 图像检索:一维直方图+EMD距离
EMD距离具体介绍已经在在这里已经给出. 思路:我们把一张图像的归一化的一维直方图作为signature的权值,也就是一般在比較两幅图像颜色直方图的EMD距离时,每一行的坐标一样,仅仅是权重值不一样. ...