最受欢迎的php框架ThinkPHP在2018年10月29日迎来了最新一次的更新,以下就是ThinkPHP更新的主要内容。
该版本主要修正了上一个版本存在的一些问题,并改进了关联查询部分。支持上一个版本的无缝升级!
主要更新
聚合查询方法的字段支持DISTINCT
修正定义路由后url函数的端口支持
修正控制器中间件对swoole的支持
改进Log类save方法
改进验证类的闭包验证参数
多对多关联支持指定中间表数据的名称
关联聚合查询支持闭包方式指定聚合字段
改进Lang类get方法
多对多关联增加判断关联数据是否存在的方法
改进关联查询使用fetchsql的情况
改进修改器的是否已经执行判断
增加afterWith和beforeWith验证规则 用于比较日期字段
新版特性
控制器中间件改进
由于Swoole等模式下,类库常驻内存,控制器中间件第二次将不会执行,现在控制器中间件的执行过程不再纳入架构函数。
模型改进
改进了修改器是否执行的判断逻辑,如果没有定义修改器方法,允许对模型数据的多次赋值。这样,可以方便在模型事件中对数据进行修改。
聚合查询的字段支持使用DISTINCT,例如:
User::count('DISTINCT id');
关联聚合查询使用闭包的时候支持指定聚合字段
User::withCount(['book' => function($query){ // 统计今年出版的书的数量 并且使用books_num作为统计字段返回 $query->whereTime('publish_time', 'y'); return 'books_num'; })->select();
针对多对多关联,还可以支持下面的用法
use think\Model; class User extends Model{ public function roles() { // 使用pivotDataName方法指定中间表的数据对象名称 return $this->belongsToMany('role') ->pivotDataName('userRole'); } }
$user = User::get(1); $role = Role::getByName('editor'); // 判断关联数据是否存在 如果存在则返回中间表对象 $pivot = $user->roles()->attached($role);
同时修正了当关联查询使用fetchSql方法导致的错误。
验证规则改进
验证规则如果使用了闭包,现在可以增加额外的参数,包括
// 新增的参数包括title(规则标题)和validate(当前验证对象) function($value, $data, $title, $validate) {}
额外新增了beforeWith和afterWith两个验证规则,用于比较多个日期字段的数据。
$validate = Validate::make([ 'start_time' => 'require|beforeWith:end_time', 'end_time' => 'require|afterWith:start_time' ]); if (!$validate->check($data)) { dump($validate->getError()); }
扩展更新
此次更新还包含了一些官方扩展的更新:
增加SeasLog日志扩展think-seaslog;
Swoole扩展更新至2.0.14版本;
单元测试扩展更新至2.0.5版本;
相关课程推荐:

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

ZendStudio 13.5.1 Mac
功能强大的PHP集成开发环境

PhpStorm Mac 版本
最新(2018.2.1 )专业的PHP集成开发工具

SecLists
SecLists是最终安全测试人员的伙伴。它是一个包含各种类型列表的集合,这些列表在安全评估过程中经常使用,都在一个地方。SecLists通过方便地提供安全测试人员可能需要的所有列表,帮助提高安全测试的效率和生产力。列表类型包括用户名、密码、URL、模糊测试有效载荷、敏感数据模式、Web shell等等。测试人员只需将此存储库拉到新的测试机上,他就可以访问到所需的每种类型的列表。

DVWA
Damn Vulnerable Web App (DVWA) 是一个PHP/MySQL的Web应用程序,非常容易受到攻击。它的主要目标是成为安全专业人员在合法环境中测试自己的技能和工具的辅助工具,帮助Web开发人员更好地理解保护Web应用程序的过程,并帮助教师/学生在课堂环境中教授/学习Web应用程序安全。DVWA的目标是通过简单直接的界面练习一些最常见的Web漏洞,难度各不相同。请注意,该软件中

VSCode Windows 64位 下载
微软推出的免费、功能强大的一款IDE编辑器