自动完成,是在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.静态定义

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

2.动态完成

 //动态完成
$rules = array(
array('user', 'sha1', 3, 'function'),
);
$user = M('User');
$data['user'] = '蜡笔小新';
f if ($user->auto($rules)->create($data)) {
$user->add();
}

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

  1. jquery获取value值时将数字型字符串前面的0自动截取处理方法

    <li class="cwhite" value="02" id="02" onclick="getQuestionList ...

  2. ODOO v10.0 自动生成财务凭证的科目设置

    ODOO v10.0 自动生成财务凭证的科目设置 可以在产品类别及产品档案里设置,建议在产品类别下设置,方便维护. 项目 设置为(具体科目以公司科目表为主) 对应作用业务 Income Account ...

  3. 怎样在IDEA中使用JUnit4和JUnitGenerator V2.0自动生成测试模块

     因为项目的需要,所以研究了一下自动生成测试代码.将经验记录下来,总会有用的.我个人认为,好记性不如多做笔记多反思总结. 1.    前提条件 开发环境已正确配置 工程已解决JUnit依赖关系(pom ...

  4. yii2.0自动登录功能的实现方法

    参考地址:http://www.kuitao8.com/20150518/3747.shtml 自动登录的原理很简单.主要就是利用cookie来实现的在第一次登录的时候,如果登录成功并且选中了下次自动 ...

  5. Zabbix3.0 自动邮件报障

    Zabbix3.0以后,自带的邮件报警支持SSL验证了, 但是仍然没有发送复数个邮箱以及CC,BCC的功能, 因此,我们还是得用别的方法来实现邮件报障. 实现方法有很多种,我用的是PHPmailer. ...

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

    前言 这一章算是看这本书最大的收获了, Lambda表达式让人用着屡试不爽, C#3.0可谓颠覆了我们的代码编写风格. 因为Lambda所需篇幅挺大, 所以先总结C#3.0智能编译器给我们带来的诸多好 ...

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

    前言 这一章算是看这本书最大的收获了, Lambda表达式让人用着屡试不爽, C#3.0可谓颠覆了我们的代码编写风格. 因为Lambda所需篇幅挺大, 所以先总结C#3.0智能编译器给我们带来的诸多好 ...

  8. thinkphp5.0 自动加载

    自动加载 概述 ThinkPHP5.0真正实现了按需加载,所有类库采用自动加载机制,并且支持类库映射和composer类库的自动加载. 自动加载的实现由think\Loader类库完成,自动加载规范符 ...

  9. 【开源】AspnetCore 2.0 自动API文档生成组件,支持protobuffer

    本文地址 http://www.cnblogs.com/likeli/p/8204054.html 关于 API文档自动生成,用于对APP端的开发帮助文档生成,默认ProtoBuffer传输格式. 本 ...

  10. 使用Myeclipse10.0自动生成搭建SSH框架(数据库表自动反向转换成Hibernate实体)实现用户登陆

    我这里使用的数据库是mysql5.0 数据是上课用的.这些都不是重点,重要的是学会这个方法: 创建好数据库: create database jboadefault character set utf ...

随机推荐

  1. oracle插入数据时解决和旧数据id的冲突

    我们在使用oracle创建一个主键的时候需要让他自增, 但是他跟mysql不同,需要创建序列,具体看下面: 可以删除之前创建的sequence,我们在重新创建一个: DROP SEQUENCE SJG ...

  2. java连接oracle范例

    需要引用:ojdbc6.jar import java.sql.*; public class Main { static Connection conn; static Statement stat ...

  3. javascript闭包和作用域链

    最近在学习前端知识,看到javascript闭包这里总是云里雾里.于是翻阅了好多资料记录下来本人对闭包的理解. 首先,什么是闭包?看了各位大牛的定义和描述各式各样,我个人认为最容易一种说法: 外部函数 ...

  4. VC++ CString类完美总结(整理)

    CString 是编程中一种非常有用的数据类型,它是MFC中的一个类,很大程度上简化了MFC中的许多字符串的操作. CString位于头文件afx.h中. ①.CString 类对象的初始化: CSt ...

  5. JS和JQuery的总结

    JS部分 一,  词法结构 区分大小 注意://单行  /*多行注释*/ 字面量(直接量literal) 12 // 数字 5.8//小数 "hello" 'hello' true ...

  6. 原生java 压缩解压zip文件

    import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import java.io.File; import ...

  7. 模拟搭建Web项目的真实运行环境(三)

    一.解决Redis出现的RDB权限问题 当你在安装redis的时候,如果是使用超级用户root安装, 开启redis服务的时候没有用超级用户去开启, 在用客户端登录redis,然后使用shutdown ...

  8. 决策树的python实现

    决策树 算法优缺点: 优点:计算复杂度不高,输出结果易于理解,对中间值缺失不敏感,可以处理不相关的特征数据 缺点:可能会产生过度匹配的问题 适用数据类型:数值型和标称型 算法思想: 1.决策树构造的整 ...

  9. 弹性布局flex-兼容问题

    这里弹性布局的用法就不说了 用过的都知道很方便 虽然现在弹性布局已经实现标准了 但是还是存在一些兼容问题 旧版本 (一些低版本的浏览器) display:-webkit-box; 新版本(目前的标准版 ...

  10. python 异常

    引用一段来自菜鸟教程的文章:http://www.runoob.com/python/python-exceptions.html Python 异常处理 python提供了两个非常重要的功能来处理p ...