05 2017 档案
摘要:payload = [ 'iss'=>request()->domain(), 'exp'=>time(), 'uid'=>$uid, ]; return $this->payload; } protected function head() { $this->head ...
阅读全文
摘要:静态调用 如果需要使用内置的规则验证单个数据,可以使用静态调用的方式。// 日期格式验证 Validate::dateFormat('2016-03-09','Y-m-d'); // true // 验证是否有效的日期 Validate::is('2016-06-03','date'); // true // 验证是否有效邮箱地址 Validate::is('thinkphp@qq.com...
阅读全文
摘要:内置规则 系统内置的验证规则如下: 格式验证类 require 验证某个字段必须,例如:'name'=>'require' number 或者 integer 验证某个字段的值是否为数字(采用filter_var验证),例如:'num'=>'number' float 验证某个字段的值是否为浮点数字(采用filter_var验证),例如:'num'=>'float' boolean...
阅读全文
摘要:表单令牌 验证规则支持对表单的令牌验证,首先需要在你的表单里面增加下面隐藏域: 或者{:token()} 然后在你的验证规则中,添加token验证规则即可,例如,如果使用的是验证器的话,可以改为: protected $rule = [ 'name' => 'require|max:25|token', 'email' => 'email', ...
阅读全文
摘要:原生查询 Db类支持原生SQL查询操作,主要包括下面两个方法: query方法 query方法用于执行SQL查询操作,如果数据非法或者查询错误则返回false,否则返回查询结果数据集(同select方法)。 使用示例:Db::query("select * from think_user where status=1"); 如果你当前采用了分布式数据库,并且设置了读写分离的话,query...
阅读全文
摘要:where where方法的用法是ThinkPHP查询语言的精髓,也是ThinkPHP ORM的重要组成部分和亮点所在,可以完成包括普通查询、表达式查询、快捷查询、区间查询、组合查询在内的查询操作。where方法的参数支持字符串和数组,虽然也可以使用对象但并不建议。 table table方法主要用于指定操作的数据表。 alias alias用于设置当前数据表的别名,便于使用其他的连贯操作例如jo...
阅读全文
摘要:查询表达式 版本 新增功能 5.0.9 比较运算增加闭包子查询支持 5.0.4 支持对同一个字段多次调用查询方法 查询表达式支持大部分的SQL查询语法,也是ThinkPHP查询语言的精髓,查询表达式的使用格式:where('字段名','表达式','查询条件'); whereOr('字段名','表达式','查询条件'); 表达式不分大小写,支持的查询表达式有下面几种,分别表示的含义是: ...
阅读全文
摘要:快捷查询 快捷查询方式是一种多字段相同查询条件的简化写法,可以进一步简化查询条件的写法,在多个字段之间用|分割表示OR查询,用&分割表示AND查询,可以实现下面的查询,例如:Db::table('think_user') ->where('name|title','like','thinkphp%') ->where('create_time&update_time','>',0)...
阅读全文
摘要:查询事件(V5.0.4+) 从5.0.4+版本开始,增加了数据库的CURD操作事件支持,包括: 事件 描述 before_select select查询前回调 before_find find查询前回调 after_insert insert操作成功后回调 after_update update操作成功后回调 after_delete delete操作成功后回调 查询事件仅支持f...
阅读全文
摘要:模型事件 模型事件是指在进行模型的写入操作的时候触发的操作行为,包括模型的save方法和delete方法。 模型事件只可以在调用模型的方法才能生效,使用查询构造器通过Db类操作是无效的 模型类支持before_delete、after_delete、before_write、after_write、
阅读全文
摘要:多对多关联 版本 功能调整 5.0.8 中间表名无需前缀,并支持定义中间表模型 5.0.6 attach方法返回值改为Pivot对象 关联定义 例如,我们的用户和角色就是一种多对多的关系,我们在User模型定义如下:namespace app\index\model; use think\Model; class User extends Model { public f...
阅读全文
摘要:一对一关联 版本 功能调整 5.0.5 增加关联自动写入和删除 5.0.4 增加关联属性绑定到父模型功能 定义 定义一对一关联,例如,一个用户都有一个个人资料,我们定义User模型如下:namespace app\index\model; use think\Model; class User extends Model { public function profile(...
阅读全文
摘要:一对多关联 关联定义 一对多关联的情况也比较常见,使用hasMany方法定义,参数包括: hasMany('关联模型名','外键名','主键名',['模型别名定义']); 例如一篇文章可以有多个评论namespace app\index\model; use think\Model; class Article extends Model { public function com...
阅读全文
摘要:软删除 版本 调整功能 5.0.2 deleteTime 属性改为非静态定义 在实际项目中,对数据频繁使用删除操作会导致性能问题,软删除的作用就是把数据加上删除标记,而不是真正的删除,同时也便于需要的时候进行数据的恢复。 要使用软删除功能,需要引入SoftDelete trait,例如User模型按照下面的定义就可以使用软删除功能:namespace app\index\model; ...
阅读全文
摘要:访问控制器 ThinkPHP引入了分层控制器的概念,通过URL访问的控制器为访问控制器层(Controller)或者主控制器,访问控制器是由\think\App类负责调用和实例化的,无需手动实例化。 URL解析和路由后,会把当前的URL地址解析到 [ 模块/控制器/操作 ],其实也就是执行某个控制器
阅读全文
摘要:系统的助手函数大致分为下面几个类型: 加载和实例化 数据操作 日志和调试 响应输出 其它 加载和实例化 import:导入所需的类库 同java的Import 本函数有缓存功能 参数: 名称 描述 默认值 class 类库命名空间字符串 必须 baseUrl 起始路径,留空为自动识别 空 ext 导入的文件扩展名 EXT常量 返回值: 导入成功返回true,否则返回fals...
阅读全文
摘要:查看指令 生成模块 生成文件 生成类库映射文件 生成路由缓存文件 生成数据表字段缓存文件 指令扩展示例 命令行调试 命令行颜色支持 调用命令 查看指令 命令行工具需要在命令行下面执行,请先确保你的php.exe已经加入了系统环境变量Path。 应用的命令行入口文件是应用根目录的think文件,其内容如下:// 定义项目路径 define('APP_PATH', './application...
阅读全文
摘要:1.普通直接开启跨域 function not_region($boolean) { if($boolean){ header('Access-Control-Allow-Origin:*'); header( 'Access-Control-Allow-Methods: GET,POST, OPT
阅读全文
摘要://生成数据库模型; $con = mysqli_connect("{host}","{user}","{pass}","(database)",“{port}”);if(!$con){ die('database connect error!');}$sqlTableModel = [];$result = mysqli_query($con,"SHOW TABLES");while($...
阅读全文
摘要:REST API 安全设计指南。REST的全称是REpresentational State Transfer,它利用传统Web特点,提出提出一个既适于客户端应用又适于服务端的应用的、统一架构,极大程度上统一及简化了网站架构设计。 目前在三种主流的Web服务实现方案中,REST模式服务相比复杂的SOAP和XML-RPC对比来讲,更加简洁,越来越多的web服务开始使用REST设计并实现。但其缺少安全...
阅读全文
摘要:$.ajax({ type:"post", url: 'domain’, success:function(data){ console.log(data); } , dataType: "json", async:false }); 警告:Synchronous XMLHttpRequest on
阅读全文
摘要:查询数据库中所有表名select table_name from information_schema.tables where table_schema='csdb' and table_type='base table'; 查询指定数据库中指定表的所有字段名column_nameselect c
阅读全文
摘要:概念数据模型CDM 概念数据模型是设计数据库不可或缺的一步,是整个数据库设计的关键,CDM的主要作用如下: 1)能够真实地模拟真实世界,是需求分析人员和数据库设计人员沟通的桥梁。2)将系统需求分析得到的用户需求抽象为信息结构过程。3)是后续逻辑数据模型和物理数据模型的基础。 CDM的基本术语: 1.
阅读全文
摘要:数据模型设计 1.整体框架约束下的迭代渐进 谈到关系数据模型设计,首先想到的可能会是“概念数据模型设计”及实体关系图(ER图),但我认为完整的数据库数据模型设计需要经过三个阶段:(1) 数据总体结构设计;(2) 概念数据模型设计;(3) 构建数据库模式。 2 数据总体结构设计 由于总体结构只是一个静
阅读全文
摘要:索引 索引是对数据表一列或多列的值进行排序的一种结构,用于加速基于索引字段的数据排序以及优化查询的执行速度,避免全表扫描。索引是直接影响数据库性能的数据库模式对象,因此十分重要。在定义主键和唯一键约束时数据库引擎会自动创建相关字段的索引,其它索引就需要用户自己定义。索引创建必须慎重,过多的索引将降低
阅读全文
摘要:设置域名解析后,服务器apache,iis,nginx等,设置虚拟服务器时, 如下,只设置index.php为默认入口文件; 默认pc站为index.html为默认访问文件! pc与wap站,绑定目录是一致的。
阅读全文
摘要:$arr[] = array('name'=>'a','flag'=>1); $arr[] = array('name'=>'b','flag'=>2); $arr[] = array('name'=>'a','flag'=>1); $flag=array(); foreach($arr as $a
阅读全文