Yii Framework开发教程(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

时间: 2024-11-13 03:03:18

Yii Framework开发教程(2)使用表单Form的相关文章

Yii Framework开发教程(3)数据库mysql入门

沿用教程(2)的代码 第一步.在本地mysql数据库中新建数据库zhyoulun 第二步.在数据库中新建表并插入若干条数据 CREATE TABLE `country` ( `code` CHAR(2) NOT NULL PRIMARY KEY, `name` CHAR(52) NOT NULL, `population` INT(11) NOT NULL DEFAULT '0' ) ENGINE=InnoDB DEFAULT CHARSET=utf8; INSERT INTO `country

Yii Framework开发教程(1)配置环境及第一个应用HelloWorld

准备工作: 我用的开发环境是windows下的apache+mysql+php 编辑器不知道该用哪个好,暂时用dreamweaver吧 我自己的http://localhost/对应的根目录是E:/website/localhost/ yii的下载地址是https://github.com/yiisoft/yii2/releases/download/2.0.0/yii-basic-app-2.0.0.tgz 备用下载地址:http://download.csdn.net/detail/u012

Yii Framework入门教程

1    Yii是什么? 什么是Yii,Yii的官方解释可以概括为以下几点: Yii是一个高性能.组件化.面向大型Web应用的PHP开发框架.1. Yii的设计完全面向对象,基于完整的MVC编程思想:2. Yii的发音类似于英文Yee[ji:],或者汉语普通话的“易”:3. Yii是开源软件,基于BSD许可发布.4. 更多信息可参考Yii官方网站: http://www.yiiframework.com/   2    MVC是什么? 上文中提到MVC,到底什么是MVC呢: MVC -> M-V

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

〇.知识点 jquery ajax 文档告诉你可以使用默认的 application/x-www-form-urlencoded, multipart/form-data, or text/plain 这三种,其它的也可以,但是需要告诉ajax 的怎样序列化它.--这句话来源于:https://www.cnblogs.com/htoooth/p/7242217.html 一.原生ajax.不使用表单(Form) app.py import os from flask import Flask,

YII Framework学习教程-YII的Model-开发规范-路径别名-命名空间

到这里,大概的YII开发已经基本可以,但是下面要将的所有课程,学完之后可以让你更爱YII.下面的教程是讲的MVC的M,model.数据,业务,代码的集中地区.所以开始之前,学学开发规范-路径别名-命名空间-,来写出自己爱看,别人能看的代码.开发规范对于一个php开发这来说还是很无奈的.这里不多说了,规则不是我定的,我的目的就是在这里罗列一点,来说说什么是规范.尽管我写的代码只有我自己爱看. YII官方给出了四篇文档来说明: 路径别名.名字空间:http://www.yiiframework.co

Yii Framework2.0开发教程(8)输入验证

validate() 方法,在幕后为执行验证操作.先看一个简单的例子,例子的代码在<Yii Framework2.0开发教程(2)使用表单Form>. 类ZhyoulunController中函数actionEntry() ,其中有一句$model->validate(),就是来判断输入的名字和电子邮件是否正确. 修改models/EntryForm.php <?php namespace app\models; use yii\base\Model; class EntryFor

Play Framework Web开发教程(19): 任务–启动一些进程

有些时候,一个Web应用有需要在正常的请求-响应周期之外执行一些代码,比如一些常时间运行的后台任务,或者也是在请求-响应周期中执行,但无需用户交互.比如我们回到之前的产品分类的例子,我们需要跟踪订单是否有人拣选,打包了和发货了.拣选货物涉及了某个人根据订单在仓库中查找订单中的物品,然后可以打包这些货品,交给物流发货.一个实现方法是生成新图所示的货品目录的物品拣选单(和HTML表单无关). 在过去很长的一段时间内,系统构架都假定这些任务都在Web应用外实现,比如在一些旧系统中的批量任务生成. 而今

Play Framework Web开发教程(16): 处理HTTP请求和响应

设计应用的一个方面是规划HTTP请求的URL规范,超链接,HTTP表单以及可能的公用API接口.在Play这是通过路由配置,然后在控制器中实现相应的接口.Play应用中的路由配置可以Controller类构成了MVC框架中的控制层,如下图所示:在Play应用中Controller为定义了HTTP接口的Scala类,而你的路由配置决定了给定的HTTP请求调用哪个Controller中定义的方法,这些Controller中的方法称为Action(动作),因此Play 的MVC框架也称为基于"动作&q

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

继续<Yii Framework2.0开发教程(3)数据库mysql入门> 首先给予一定的尊重yii2数据库支持引进 Yii 基于 PHP's PDO一个成熟的数据库访问层的建立.它提供了一个统一的 API 并且克服了许多不同的 DBMS 违禁使用. Yii 默认支持下面 DBMS : MySQL MariaDB SQLite PostgreSQL CUBRID: version 9.1.0 or higher. Oracle MSSQL: version 2012 或更高版本号,如需使用 L