掌握Thinkphp3.2.0----自动完成

自动完成,是在create数据的时候自动执行的一个或多个动作

自动完成也分为动态和静态两种

格式:

//完成规则
array(
  array(完成字段1,完成规则,[完成条件,附加规则]),
  array(完成字段2,完成规则,[完成条件,附加规则]),
......
);

完成字段:必填,需要的字段名;
完成规则:必填,配合附加规则完成;
完成条件:可选,具体如下:
  1.self::MODEL_INSERT 或 1,新增数据的时候处理(默认) ;
  2.self::MODEL_UPDATE 或 2,更新数据的时候处理;
  3.self::MODEL_BOTH 或 3,所有情况均处理。
附加规则:可选,配合完成规则使用,包括一下规则:
规则 说明
  function 函数完成,定义的验证规则是一个函数名
  callback 方法完成,定义的验证规则是当前模型类的一个方法
  field 用其他字段填充,表示填充的内容是一个其他字段的值
  string 字符串(默认)
  ignore 为空则忽略(3.1.2新增)

1.静态定义

 1 在模型类里预先定义好该模型的自动完成规则,就是静态定义。
 2 class UserModel s extends Model {
 3 //自动完成
 4 protected $_auto =  array(
 5 //自动设置count字段为1
 6 array(‘count‘, ‘1‘),
 7 //给密码加密,加密类型为sha1,sha1函数PHP内置
 8 array(‘user‘, ‘sha1‘, 3, ‘function‘),
 9 );
10 }
11 为了测试方便,我们可以直接通过模拟提交 POST:
12 //控制器create()方法自动调用验证
13 $user = D(‘User‘);
14 $data[‘user‘] = ‘蜡笔小新‘;
15 if ($user->create($data)) {
16 $user->add();
17 }
18 //string,自动设置count字段为1
19 array(‘count‘, ‘1‘),
20 //function,给密码加密,加密类型为sha1,sha1函数PHP内置
21 array(‘user‘, ‘sha1‘, 3, ‘function‘),
22 //把email字段的值填充到user字段冲去
23 array(‘user‘, ‘email‘, 3, ‘field‘),
24 //callback,给用户名加前缀
25 array(‘user‘, ‘updateUser‘, 3, ‘callback‘, ‘_‘),
26 //回调函数
27 protected function updateUser($str, $prefix) {
28  return $prefix.$str;
29 }
30 //ignore,用于修改时密码留空时,忽略修改
31 array(‘pass‘, ‘‘, 2, ‘ignore‘),

2.动态完成

1 //动态完成
2 $rules =  array(
3 array(‘user‘, ‘sha1‘, 3, ‘function‘),
4 );
5 $user = M(‘User‘);
6 $data[‘user‘] = ‘蜡笔小新‘;
7 f if ($user->auto($rules)->create($data)) {
8 $user->add();
9 }
时间: 2024-08-02 02:16:27

掌握Thinkphp3.2.0----自动完成的相关文章

JDBC4.0自动加载驱动器类

1 JDBC4.0自动加载驱动器类 2 从JDK1.6开始,Oracle就将修改了添加了新的加载JDBC驱动的方式.即JDBC4.0.在启动项目或是服务时,会判断当前classspath中的所的jar包,并检查META-INF目录下,是否包含services文件夹,如果包含,就会将里面的配置加载成相应的服务. 3 如Oracle11g的ojdbc6.jar包: 4 5 META-INF/services/jdbc.sql.Driver文件内容只有一行,即实现java.sql.Driver的类:

[读书笔记]C#学习笔记五: C#3.0自动属性,匿名属性及扩展方法

前言 这一章算是看这本书最大的收获了, Lambda表达式让人用着屡试不爽, C#3.0可谓颠覆了我们的代码编写风格. 因为Lambda所需篇幅挺大, 所以先总结C#3.0智能编译器给我们带来的诸多好处, 下一遍会单独介绍Lambda表达式. 这篇主要包括的内容有: 自动属性,隐式类型,对象集合初始化,匿名类型,扩展方法. 下面一起来看下C#3.0 所带来的变化吧. 1,自动实现的属性在C#3.0之前, 定义属性时一般会像下面这样去编写代码: 1 class Person 2 { 3 //定义私

zabbix3.0自动发现监控IIS

说明此处配置针对的是zabbix3.0版本 利用zabbix的自动发现(LLD)功能结合脚本可以实现上面的需求,实现对IIS站点的动态添加,动态监控. 效果图: 具体配置步骤: 1.  zabbix服务端配置 配置过滤正则表达式: 依次选择Administration->General->Regular expressions.创建新的正则表达式"IISSite for discovery",会在后面的模板中引用.正则表达式的名字不能有错,否则导入模板报错. 导入模块 将内

C#学习笔记四: C#3.0自动属性&匿名属性及扩展方法

前言 这一章算是看这本书最大的收获了, Lambda表达式让人用着屡试不爽, C#3.0可谓颠覆了我们的代码编写风格. 因为Lambda所需篇幅挺大, 所以先总结C#3.0智能编译器给我们带来的诸多好处, 下一遍会单独介绍Lambda表达式. 这篇主要包括的内容有: 自动属性,隐式类型,对象集合初始化,匿名类型,扩展方法. 下面一起来看下C#3.0 所带来的变化吧. 1,自动实现的属性在C#3.0之前, 定义属性时一般会像下面这样去编写代码: 1 class Person 2 { 3 //定义私

Zabbix3.0 自动邮件报障

Zabbix3.0以后,自带的邮件报警支持SSL验证了, 但是仍然没有发送复数个邮箱以及CC,BCC的功能, 因此,我们还是得用别的方法来实现邮件报障. 实现方法有很多种,我用的是PHPmailer. http://files.cnblogs.com/files/justbio/PHPMailer-master.zip 这个是比较新的PHPmailer,下载后解压到文件夹. cd /usr/lib/zabbix/alertscripts/ unzip PHPMailer-master.zip 编

thinkphp5.0自动加载

概述 ThinkPHP5.0 真正实现了按需加载,所有类库采用自动加载机制,并且支持类库映射和composer类库的自动加载. 自动加载的实现由think\Loader类库完成,自动加载规范符合PHP的PSR-4. 自动加载 由于新版ThinkPHP完全采用了命名空间的特性,因此只需要给类库正确定义所在的命名空间,而命名空间的路径与类库文件的目录一致,那么就可以实现类的自动加载. 类库的自动加载检测顺序如下: 1.类库映射检测:2.PSR-4自动加载检测:3.PSR-0自动加载检测: 系统会按顺

Zabbix4.0自动发现和自动注册并加入监控

可以根据需要,在对主机安装系统的时候就安装配置并启动zabbix-agent服务,这样的话只要主机系统安装完成,便会自动加入监控. 在主机较多的时候,配置Zabbix自动发现或者自动注册并加入监控可以代替手动的添加主机,减轻工作量,Zabbix提供两种批量自动监控的方式: 自动发现:由服务端主动发起,Zabbix Server开启发现进程,定时扫描局域网中IP服务器.设备.实现自动发现主机.自动将主机添加到主机组.自动加载模板.自动创建项目(item).自动创建图像等功能. 自动注册:由客户端主

yii2.0 自动加载自定义helper类

使用的是基础模板 不是高级模板 实现自动加载类修改yii框架下的classes.php实现 在程序中 直接使用方法即可

vim编辑下Python2.0自动补全

Python自动补全有vim编辑下和python交互模式下,下面分别介绍如何在这2种情况下实现Tab键自动补全. 一.vim python自动补全插件:pydiction 可以实现下面python代码的自动补全: 简单python关键词补全 python 函数补全带括号 python 模块补全 python 模块内函数,变量补全 from module import sub-module 补全 想为vim启动自动补全需要下载插件,地址如下:http://vim.sourceforge.net/s

thinkphp3.2.3 自动验证 正则验证

<?php namespace Home1\Model; use Think\Model; class ShopYuyueInfoModel extends Model { // protected $_validate = array( protected $_validate = array( array('name','require','姓名必填..1!'), // 必填 array('tel','/^1[34578]\d{9}$/','手机号码不对..1!',0,'regex',3),