文档章节

yii_1_1_17_8(模型规则与标签设置开启前台验证-2016-2-11)

wsy940822
 wsy940822
发布于 2016/02/12 17:48
字数 545
阅读 10
收藏 0
点赞 1
评论 0

模型标签与规则设置

标签名字(写在model里面的user中):

class user{
	public function attributeLabels(){
		return array(
			'password' => '原始密码',
			'password1'=> '新密码',
			'password2'=> '确认密码',
		);
	}
}
新密码和确认密码在数据库中没有,所以需要重新定义属性。

标签-视图页面:

需要先在usercontroller中引用:
$userModel = User::model();
$this->render('index',array('userModel'=>$userModel));
视图中:

<td><?php echo $form->labelEx($userModel,'password') ?><td />
<td><?php echo $form->passwordField($userModel,'password') ?><td />

label和labelEx  
labelEx会在后面加个小*号,为必填.

规则设置:

	在model里面设置
	public function rules(){
		return array(
			array('password', 'required', 'message' => '原始密码必填'),
			array('password', 'check_passwd', 'message' => '原始密码必填'),//原始密码验证
			array('password1', 'required', 'message' => '新密码必填'),
			array('password2', 'required', 'message' => '确认密码必填'),
			array('password2', 'compare', 'compareAttribue'=>'password1', 'message' => '两次密码不相同')
		);
	}
	
	public function check_passwd(){
		$userInfo = $this->find('username=:name',array(':name'=>Yii::app()->name));
		if(md5($this->password) != $userInfo->password){
			$this->addError('password','原始密码不正确');
		}
	}

在控制器中验证数据是否获取并且判断:

if(isset($_POST['User'])){
	$userModel->attributes = $_POST['User'];
	$userModel->validate();//rules验证
}

规则列表:

boolean:确保特性有一个布尔值。
captcha:确保特性等于CAPTCHA中显示的验证码。
compare:确保特性等于另一个特性或常量。
email:	确保特性是一个有效的Email地址。
default:指定特性的默认值。
exist:  确保特性值可以在指定表的列中可以找到。
file:	确保特性含有一个上传文件的名字。
filter:	通过一个过滤器改变此特性。
in:	确保数据在一个预先指定的值的范围之内。
lsength:确保数据的长度在一个指定的范围之内。
match:	确保数据可以匹配一个正则表达式。
numerical:确保数据是一个有效的数字。
required:确保特性不为空。
type:	确保特性是指定的数据类型。
unique:确保数据在数据表的列中是唯一的。
url:	确保数据是一个有效的URL。

开启前台验证的JS自动验证

必须用render

在视图中添加

<body>
	<?php $form = $this->beginWidget('CActiveForm',array(
		'enableClientValidation' => true,
		'clientOptions' => array(
				'validateOnSubmit' => true,
			)
		)
	); ?>

© 著作权归作者所有

共有 人打赏支持
wsy940822
粉丝 27
博文 63
码字总数 24407
作品 0
浦东
程序员
YII2项目常用技能知识总结

1、不通过日志获取AR执行的原生SQL语句和打印变量数据 2、从数据库二维数组中返回一维数组并配合rules验证规则实现分类数据过滤。 普通返回表记录的二维数组 返回字段的一维数组 或者: 返回...

风清扬-深圳 ⋅ 2015/11/15 ⋅ 0

Yii2 基于RESTful架构的 advanced版API接口开发 配置、实现、测试

环境配置: 开启服务器伪静态 本处以apache为例,查看apache的conf目录下httpd.conf,找到下面的代码 LoadModule rewritemodule modules/modrewrite.so 将其前面的#去掉,如果没有找到则添加...

沧海野狼 ⋅ 2016/09/01 ⋅ 0

5月YII2学习总结

5月份YII2学习任务基本上告一段落了,总体感觉只是简单学习了YII2,可以进行基本的应用开发,文档没有全部看完,自己简单做了一个QA问答系统进行练手。 QA问答系统功能: 1、登陆、注册、收藏...

卖小女孩的小火柴 ⋅ 2015/05/25 ⋅ 2

liufee/yii2-swoole

yii2 swoole 让yii2运行在swoole上。如果您在使用中遇到问题或者想学习yii2结合swoole可以加qq群258780872一起讨论 性能 运行在swoole上的yii2是运行在php-fpm上yii2的5倍以上,而且一句代码...

liufee ⋅ 2017/12/26 ⋅ 0

yii2开发中19条推荐实践(阿北总结)

虽然每个人的编程风格不同,但是有些建议能让你的代码更加规范和稳定,本次就我这次网站更新总结如下几点,希望对你的yii2学习和使用有所帮助。 环境说明 服务器环境: CentOS 开发环境及IDE...

阿北2017 ⋅ 06/02 ⋅ 0

Yii 2.0开发一个仿京东商城平台

第1章 课程简介 介绍了课程内容、背景和案例展示。 第2章 项目的准备工作 介绍了如何使用PHP依赖管理工具Composer安装Yii2框架,模拟配置真实企业开发项目运行环境和编辑器。 第3章 项目前台...

15543595340 ⋅ 05/19 ⋅ 0

基于 yii2 的内容管理系统--FeehiCMS

FeehiCMS是基于yii2的CMS系统,运行环境与yii2(php>=5.4)一致。FeehiCMS旨在为yii2爱好者提供一个基础功能完善的CMS系统,使开发者更专注于业务功能开发。 FeehiCMS没有对yii2做任何的修改、...

liufee ⋅ 2017/11/22 ⋅ 3

yii2 csrf验证以及token管理

开启/关闭csrf 默认情况下yii2是开启了csrf验证功能的,如果需要关闭它的话,只要在控制器中设置一个属性就可以: 一般情况下不建议关闭,但api场景可能需要关闭。 TOKEN生成管理 token生成有...

吾爱 ⋅ 2016/04/21 ⋅ 0

Yii2如何实现用户登陆

这两天空的时候,看了下Yii2,然后按照官方教程,安装了Yii2基础版。最开始的问题,无非就是注册登陆等功能了,果然,Yii2基础版并不像高级版一样,可以直接导入创建好的数据库,只有的静态登...

卖小女孩的小火柴 ⋅ 2015/04/11 ⋅ 5

技术积累笔记概要

2015年11月24日 1、rest 速率限制,写属于自己的方法。 2、actions方法深刻了解。 3、YII技术博客:http://blog.csdn.net/terrywater/article/category/2565815。 4、静态方法传递参数的习惯...

风清扬-深圳 ⋅ 2015/11/24 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

645. Set Mismatch - LeetCode

Question 645. Set Mismatch Solution 思路: 遍历每个数字,然后将其应该出现的位置上的数字变为其相反数,这样如果我们再变为其相反数之前已经成负数了,说明该数字是重复数,将其将入结果r...

yysue ⋅ 12分钟前 ⋅ 0

Confluence 6 从生产环境中恢复一个测试实例

请参考 Restoring a Test Instance from Production 页面中的内容获得更多完整的说明。 很多 Confluence 的管理员将会使用生产实例运行完整数据和服务的 Confluence 服务器,同时还会设置一个...

honeymose ⋅ 17分钟前 ⋅ 0

Python这么强?红包杀手、消息撤回也可以无视,手机App辅助!

论述 标题也许有点不好理解,其实就是一款利用Python实现的可以监控微信APP内的红包与消息撤回的助手。不得不说,这确实是一款大家钟意的神器。 消息撤回是一件很让人恶心的事,毕竟人都是有...

Python燕大侠 ⋅ 28分钟前 ⋅ 0

压缩打包介绍、gzip压缩工具、bzip2压缩工具、xz压缩工具

压缩打包介绍 压缩的好处不仅能节省磁盘空间而且在传输的时候节省传输时间和网络带宽 windows系统下文件带有 .rar .zip .7z 后缀的就是压缩文件 linux系统下则是 .zip, .gz, .bz2, .xz, ...

黄昏残影 ⋅ 33分钟前 ⋅ 0

观察者模式

1.利用java原生类进行操作 package observer;import java.util.Observable;import java.util.Observer;/** * @author shadow * @Date 2016年8月12日下午7:29:31 * @Fun 观察目标 **/......

Cobbage ⋅ 35分钟前 ⋅ 0

Ubuntu打印服务器配置

参考:https://blog.csdn.net/gsls200808/article/details/50950586 https://blog.csdn.net/jiay2/article/details/80252369 https://wiki.gentoo.org/wiki/HPLIP 由于媳妇儿要大量打印资料,......

大熊猫 ⋅ 41分钟前 ⋅ 0

面试的角度诠释Java工程师(二)

原文出处: locality 续言: 相信每一位简书的作者,都会有我这样的思考:怎么写好一篇文章?或者怎么写好一篇技术类的文章?我就先说说我的感悟吧,写文章其实和写程序是一样的。为什么我会...

颖伙虫 ⋅ 44分钟前 ⋅ 0

github中SSH的Key

https://help.github.com/articles/connecting-to-github-with-ssh/ https://help.github.com/articles/testing-your-ssh-connection/ https://help.github.com/articles/adding-a-new-ssh-k......

whoisliang ⋅ 44分钟前 ⋅ 0

only_full_group_by

我的mysql是在CentOS7.1下面的5.7.17 在 /etc/my.cnf 文件里加上如下: sql_mode='NO_ENGINE_SUBSTITUTION' 然后,重启Mysql服务 systemctl restart mysqld...

SunHacker ⋅ 今天 ⋅ 0

实际项目(SpringBoot项目)中集成Druid

参考网页 https://blog.csdn.net/liuchuanhong1/article/details/55050131 https://blog.csdn.net/CoffeeAndIce/article/details/78707819 https://www.pocketdigi.com/20170530/1577.html 为......

karma123 ⋅ 今天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部