ThinkPHP, das beliebteste PHP-Framework, hat sein neuestes Update am 29. Oktober 2018 erhalten. Im Folgenden sind die Hauptinhalte des ThinkPHP-Updates aufgeführt.
Diese Version behebt hauptsächlich einige Probleme der vorherigen Version und verbessert den zugehörigen Abfrageteil. Unterstützt nahtloses Upgrade von der Vorgängerversion!
Hauptaktualisierung
Die Felder der Aggregationsabfragemethode unterstützen DISTINCT
Korrigieren Sie anschließend die Portunterstützung der URL-Funktion Definieren der Route
Korrektur der Controller-Middleware-Unterstützung für Swoole
Verbesserung der Speichermethode der Protokollklasse
Verbesserung der Abschlussüberprüfungsparameter der Verifizierungsklasse
Viele- Zu-Viele-Assoziation unterstützt Spezifikation Der Name der Zwischentabellendaten
Assoziative Aggregationsabfrage unterstützt Abschlussmethode zum Angeben von Aggregationsfeldern
Verbesserte Lang-Klassen-Get-Methode
Viele-zu- Viele Assoziationen fügen eine Methode hinzu, um zu bestimmen, ob verwandte Daten vorhanden sind.
Verbesserung der Verwendung von fetchsql für verwandte Abfragen.
Verbesserung der Beurteilung, ob der Modifikator ausgeführt wurde.
Nachher hinzufügenMit und VorherMit Validierungsregeln zum Vergleichen von Datumsfeldern
Neue Versionsfunktionen
Verbesserungen der Controller-Middleware
Seitdem In Swoole und anderen Modi befindet sich die Klassenbibliothek im Speicher, die Steuerung Die Controller-Middleware wird beim zweiten Mal nicht ausgeführt, und jetzt ist der Ausführungsprozess der Controller-Middleware nicht mehr in der Architekturfunktion enthalten.
Modellverbesserungen
Die Beurteilungslogik, ob der Modifikator ausgeführt wird, wurde verbessert. Wenn die Modifikatormethode nicht definiert ist, sind mehrere Zuweisungen zu Modelldaten zulässig. Auf diese Weise können Daten in Modellereignissen einfach geändert werden.
Das Feld der Aggregationsabfrage unterstützt die Verwendung von DISTINCT, zum Beispiel:
User::count('DISTINCT id');
Wenn die Assoziationsaggregationsabfrage den Abschluss verwendet, unterstützt sie die Angabe des Aggregationsfelds
User::withCount(['book' => function($query){ // 统计今年出版的书的数量 并且使用books_num作为统计字段返回 $query->whereTime('publish_time', 'y'); return 'books_num'; })->select();
Für viele -zu-viele-Assoziation, Sie können auch die folgende Verwendung
use think\Model; class User extends Model{ public function roles() { // 使用pivotDataName方法指定中间表的数据对象名称 return $this->belongsToMany('role') ->pivotDataName('userRole'); } }rrree
unterstützen und auch den Fehler beheben, der verursacht wird, wenn die fetchSql-Methode in verwandten Abfragen verwendet wird.
Verbesserungen bei Validierungsregeln
Wenn Abschlüsse in Validierungsregeln verwendet werden, können Sie jetzt zusätzliche Parameter hinzufügen, darunter
$user = User::get(1); $role = Role::getByName('editor'); // 判断关联数据是否存在 如果存在则返回中间表对象 $pivot = $user->roles()->attached($role);
Außerdem beforeWith und afterMit zwei Validierungsregeln zum Vergleichen von Daten aus mehreren Datumsfeldern.
// 新增的参数包括title(规则标题)和validate(当前验证对象) function($value, $data, $title, $validate) {}
Erweiterungsupdate
Dieses Update enthält auch Updates für einige offizielle Erweiterungen:
SeasLog-Protokollerweiterung think -seaslog hinzugefügt ;
Swoole-Erweiterung auf Version 2.0.14 aktualisiert;
Verwandte Kursempfehlungen:
Das neueste ThinkPHP 5.1-Weltpremieren-Video-Tutorial (60 Tage, um ein PHP-Experten-Online-Schulungskurs zu werden)Dugu Jiujian (5)_ThinkPHP5-Video-TutorialThinkPHP grundlegendes praktisches Video-Tutorialthinkphp3.2 grundlegendes Video-Tutorial