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

リリース: 2018-10-29 17:50:59
転載
7052 人が閲覧しました

最も人気のある 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 までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!