最受歡迎的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版本;
#相關課程推薦:
##################################################################################################################### ###最新ThinkPHP 5.1全球首發影片教學(60天成就PHP大牛線上訓練班課)############獨孤九賤(5)_ThinkPHP5影片教學###### ######ThinkPHP基礎實戰影片教學############thinkphp3.2 基礎影片教學######
熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SecLists
SecLists是最終安全測試人員的伙伴。它是一個包含各種類型清單的集合,這些清單在安全評估過程中經常使用,而且都在一個地方。 SecLists透過方便地提供安全測試人員可能需要的所有列表,幫助提高安全測試的效率和生產力。清單類型包括使用者名稱、密碼、URL、模糊測試有效載荷、敏感資料模式、Web shell等等。測試人員只需將此儲存庫拉到新的測試機上,他就可以存取所需的每種類型的清單。

禪工作室 13.0.1
強大的PHP整合開發環境

DVWA
Damn Vulnerable Web App (DVWA) 是一個PHP/MySQL的Web應用程序,非常容易受到攻擊。它的主要目標是成為安全專業人員在合法環境中測試自己的技能和工具的輔助工具,幫助Web開發人員更好地理解保護網路應用程式的過程,並幫助教師/學生在課堂環境中教授/學習Web應用程式安全性。 DVWA的目標是透過簡單直接的介面練習一些最常見的Web漏洞,難度各不相同。請注意,該軟體中

ZendStudio 13.5.1 Mac
強大的PHP整合開發環境