ホームページ  >  記事  >  ThinkPHP の最新正式バージョンがリリースされました - ThinkPHP5.1.28 に更新されました

ThinkPHP の最新正式バージョンがリリースされました - ThinkPHP5.1.28 に更新されました

不言
不言転載
2018-10-29 10:46:037078ブラウズ

最も人気のある PHP フレームワークである ThinkPHP は、2018 年 10 月 29 日に最新のアップデートを受け取りました。ThinkPHP アップデートの主な内容は次のとおりです。

このバージョンでは、主に以前のバージョンに存在していたいくつかの問題が修正され、関連するクエリ部分が改善されています。前バージョンからのシームレスなアップグレードをサポート!

主な更新

集計クエリ メソッドのフィールドが DISTINCT をサポート

URL 関数のポート サポートを修正ルートの定義

コントローラ ミドルウェアの swoole サポートを修正

#Log クラスの保存メソッドを改善

#検証クラスのクロージャ検証パラメータを改善

##Many -to-many アソシエーションサポート仕様 中間テーブルデータの名前

連想集計クエリは集計フィールドを指定するクロージャーメソッドをサポート

Lang クラスの get メソッドを改善

多対多の関連付けにより、関連付けられたデータが存在するかどうかを判断するメソッドが追加されました

関連クエリでの fetchsql の使用を改善

#修飾子が実行されたかどうかの判断を改善

日付フィールドを比較するための afterWith および beforeWith 検証ルールを追加

新バージョンの機能

コントローラー ミドルウェアの改善

Swooleなどのモードではクラスライブラリがメモリ上に常駐するため、コントローラミドルウェアの制御は2回目以降は実行されなくなり、コントローラミドルウェアの実行処理がアーキテクチャ機能に含まれなくなりました。

モデルの改善

モディファイアメソッドが定義されていない場合、モデルデータへの複数の代入が許可されるように、モディファイアが実行されるかどうかの判定ロジックが改善されました。このようにして、モデル イベントでデータを簡単に変更できます。 集計クエリのフィールドは、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) {}
Added beforeWith と afterWith 2 を含む追加パラメータを追加できるようになりました。複数の日付フィールドのデータを比較するための検証ルール。

$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 ワールドプレミア ビデオ チュートリアル (PHP エキスパートになるまでの 60 日のオンライン トレーニング クラス)

Dugu Jiijian (5)_ThinkPHP5 ビデオ チュートリアル

ThinkPHP の基本的な実践的なビデオ チュートリアル

thinkphp3.2 の基本的なビデオ チュートリアル

声明:
この記事はThinkPHP微信公众号で複製されています。侵害がある場合は、admin@php.cn までご連絡ください。