摘要: 静态调用 如果需要使用内置的规则验证单个数据,可以使用静态调用的方式。// 日期格式验证 Validate::dateFormat('2016-03-09','Y-m-d'); // true // 验证是否有效的日期 Validate::is('2016-06-03','date'); // true // 验证是否有效邮箱地址 Validate::is('thinkphp@qq.com... 阅读全文
posted @ 2017-05-28 18:41 徐锅 阅读(231) 评论(0) 推荐(0) 编辑
摘要: 内置规则 系统内置的验证规则如下: 格式验证类 require 验证某个字段必须,例如:'name'=>'require' number 或者 integer 验证某个字段的值是否为数字(采用filter_var验证),例如:'num'=>'number' float 验证某个字段的值是否为浮点数字(采用filter_var验证),例如:'num'=>'float' boolean... 阅读全文
posted @ 2017-05-28 18:39 徐锅 阅读(1615) 评论(0) 推荐(0) 编辑
摘要: 表单令牌 验证规则支持对表单的令牌验证,首先需要在你的表单里面增加下面隐藏域: 或者{:token()} 然后在你的验证规则中,添加token验证规则即可,例如,如果使用的是验证器的话,可以改为: protected $rule = [ 'name' => 'require|max:25|token', 'email' => 'email', ... 阅读全文
posted @ 2017-05-28 18:37 徐锅 阅读(308) 评论(0) 推荐(0) 编辑
摘要: 原生查询 Db类支持原生SQL查询操作,主要包括下面两个方法: query方法 query方法用于执行SQL查询操作,如果数据非法或者查询错误则返回false,否则返回查询结果数据集(同select方法)。 使用示例:Db::query("select * from think_user where status=1"); 如果你当前采用了分布式数据库,并且设置了读写分离的话,query... 阅读全文
posted @ 2017-05-28 18:32 徐锅 阅读(272) 评论(0) 推荐(0) 编辑
摘要: where where方法的用法是ThinkPHP查询语言的精髓,也是ThinkPHP ORM的重要组成部分和亮点所在,可以完成包括普通查询、表达式查询、快捷查询、区间查询、组合查询在内的查询操作。where方法的参数支持字符串和数组,虽然也可以使用对象但并不建议。 table table方法主要用于指定操作的数据表。 alias alias用于设置当前数据表的别名,便于使用其他的连贯操作例如jo... 阅读全文
posted @ 2017-05-28 18:30 徐锅 阅读(1517) 评论(0) 推荐(0) 编辑
摘要: 查询表达式 版本 新增功能 5.0.9 比较运算增加闭包子查询支持 5.0.4 支持对同一个字段多次调用查询方法 查询表达式支持大部分的SQL查询语法,也是ThinkPHP查询语言的精髓,查询表达式的使用格式:where('字段名','表达式','查询条件'); whereOr('字段名','表达式','查询条件'); 表达式不分大小写,支持的查询表达式有下面几种,分别表示的含义是: ... 阅读全文
posted @ 2017-05-28 18:22 徐锅 阅读(1043) 评论(0) 推荐(0) 编辑
摘要: 快捷查询 快捷查询方式是一种多字段相同查询条件的简化写法,可以进一步简化查询条件的写法,在多个字段之间用|分割表示OR查询,用&分割表示AND查询,可以实现下面的查询,例如:Db::table('think_user') ->where('name|title','like','thinkphp%') ->where('create_time&update_time','>',0)... 阅读全文
posted @ 2017-05-28 18:12 徐锅 阅读(368) 评论(0) 推荐(0) 编辑
摘要: 查询事件(V5.0.4+) 从5.0.4+版本开始,增加了数据库的CURD操作事件支持,包括: 事件 描述 before_select select查询前回调 before_find find查询前回调 after_insert insert操作成功后回调 after_update update操作成功后回调 after_delete delete操作成功后回调 查询事件仅支持f... 阅读全文
posted @ 2017-05-28 18:01 徐锅 阅读(230) 评论(0) 推荐(0) 编辑
摘要: 模型事件 模型事件是指在进行模型的写入操作的时候触发的操作行为,包括模型的save方法和delete方法。 模型事件只可以在调用模型的方法才能生效,使用查询构造器通过Db类操作是无效的 模型类支持before_delete、after_delete、before_write、after_write、 阅读全文
posted @ 2017-05-28 17:59 徐锅 阅读(142) 评论(0) 推荐(0) 编辑
摘要: 多对多关联 版本 功能调整 5.0.8 中间表名无需前缀,并支持定义中间表模型 5.0.6 attach方法返回值改为Pivot对象 关联定义 例如,我们的用户和角色就是一种多对多的关系,我们在User模型定义如下:namespace app\index\model; use think\Model; class User extends Model { public f... 阅读全文
posted @ 2017-05-28 17:47 徐锅 阅读(187) 评论(0) 推荐(0) 编辑
摘要: 一对一关联 版本 功能调整 5.0.5 增加关联自动写入和删除 5.0.4 增加关联属性绑定到父模型功能 定义 定义一对一关联,例如,一个用户都有一个个人资料,我们定义User模型如下:namespace app\index\model; use think\Model; class User extends Model { public function profile(... 阅读全文
posted @ 2017-05-28 17:46 徐锅 阅读(266) 评论(0) 推荐(0) 编辑
摘要: 一对多关联 关联定义 一对多关联的情况也比较常见,使用hasMany方法定义,参数包括: hasMany('关联模型名','外键名','主键名',['模型别名定义']); 例如一篇文章可以有多个评论namespace app\index\model; use think\Model; class Article extends Model { public function com... 阅读全文
posted @ 2017-05-28 17:46 徐锅 阅读(187) 评论(0) 推荐(0) 编辑
摘要: 软删除 版本 调整功能 5.0.2 deleteTime 属性改为非静态定义 在实际项目中,对数据频繁使用删除操作会导致性能问题,软删除的作用就是把数据加上删除标记,而不是真正的删除,同时也便于需要的时候进行数据的恢复。 要使用软删除功能,需要引入SoftDelete trait,例如User模型按照下面的定义就可以使用软删除功能:namespace app\index\model; ... 阅读全文
posted @ 2017-05-28 17:32 徐锅 阅读(642) 评论(0) 推荐(0) 编辑