<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??一站式輕松地調用各大LLM模型接口,支持GPT4、智譜、豆包、星火、月之暗面及文生圖、文生視頻 廣告
                ### 2019 年 2 月 14 日 發布 `5.2`在經過幾個月的測試版本迭代后,正式進入候選版本。之后的重點工作會是擴展以及文檔的完善。當然,不排除核心還有微調的可能。 ThinkPHP5.2`RC1`版本繼上個版本[`beta3`版本](https://blog.thinkphp.cn/934993)發布以來,主要更新如下: ## 新特性 ### 支持`FIND_IN_SET`查詢 增加了新的查詢表達式對`FIND_IN_SET`的支持,使用下面的查詢即可: ``` Db::name('user')->where('group_list', 'find in set', 2)->select(); ``` ### 增加了分區查詢支持 增加了對分區的支持(需要MySQL`5.6+`版本),例如你對`user`表分了`p1`和`p2`兩個分區,你可以使用下面的查詢: ``` Db::name('user')->partition('p1')->insert(['name' => 'think']); Db::name('user')->partition(['p1', 'p2'])->select(); Db::name('user')->partition(['p1', 'p2'])->where('name', 'think')->update(['name' => 'thinkphp']); Db::name('user')->partition('p1')->where('name', 'think')->delete(); ``` ### 增加了`ON DUPLICATE UPDATE`支持 支持`ON DUPLICATE UPDATE`,例如: ``` Db::name('user')->duplicate(['score' => 10])->insert(['name' => 'think']); ``` ### 增加`extra`方法設置查詢額外參數 `extra`方法可以用于`CURD`查詢,例如: ``` Db::name('user')->extra('IGNORE')->insert(['name' => 'think']); Db::name('user')->extra('DELAYED')->insert(['name' => 'think']); Db::name('user')->extra('SQL_BUFFER_RESULT')->select(); ``` 新增單個數據改為使用更清晰和高效的`INSERT SET`語法,例如下面的查詢 ``` Db::name('user')->insert(['name' => 'think', 'score' => 100]); ``` 實際生成的SQL語句是 ``` INSERT INTO user SET `name` = 'think', `score` = 100 ``` ### 增加`whereFieldRaw`查詢方法 該方法用于對字段使用SQL函數查詢,例如: ``` User::whereFieldRaw('date_format("create_time", "%Y")', '2019')->select(); User::whereFieldRaw('date_format("create_time", "%Y")', '>', '2018')->select(); ``` ### `Query`類的`update`方法支持獲取模型的更新條件 現在可以直接使用模型的查詢條件作為`Db`類`update`方法的數據更新條件,例如: ``` $user = User::find(1); $user->field(['name'])->update(['name' => 'thinkphp']); ``` ### 數據集類增加快捷查詢(過濾)方法 `think\Collection`類增加`whereLike`/`whereNotLike`/`whereIn`/`whereNotIn`/`whereBetween`/`whereNotBetween`等快捷方法,用于更方便的進行數據篩選而替代使用不夠直觀的`where`方法。 ### 增加`optimize:facade`指令 可以在本地開發的時候使用該指令為`Facade`類生成對應類的方法注釋。你只需要在定義Facade類的時候,在類的注釋中添加 `@mixin` 選項,例如使用`@mixin think\Db`注釋后,使用`optimize:facade`指令后,就會在類的注釋中自動生成`think\Db`類的相關`public`方法注釋,方便IDE自動提示,每個類的方法返回值類型最好明確指定(沒有返回值的則使用`void`),否則注釋中會使用`mixed`返回類型。 ### 增加新的表達式查詢解析擴展 增加了新的`think\db\Expression`類(原來的`Expression`類已經更改為`Raw`類)用于查詢表達式的擴展解析,你只需要自定義一個表達式解析類,例如: ``` <?php namespace app\common\expression; use think\db\Expression; class Rlike extends Expression { /** * 分析查詢表達式 * * @param Query $query 查詢對象 * @param string $key * @param string $exp * @param string $field * @param integer $bindType * @return string */ public function parse(Query $query, string $key, string $exp, string $field, int $bindType): string { if ($this->value instanceof Raw) { $value = $this->value->getValue(); } else { $value = $this->value; } return $key .' RLIKE ' . $value ; } } ``` 現在我們就可以使用下面的查詢語法了: ``` User::where('name', 'rlike', new \app\common\expression\Rlike('^think'))->select(); ``` ### 提供了關閉事件機制的方法 如果你完全不需要使用事件機制,可以在入口文件中使用`withEvent`方法關閉事件功能。 ``` (new App())->withEvent(false)->run()->send(); ``` >[danger] 不過值得提醒的是,新版的路由功能、多語言支持和請求緩存功能都是利用了事件機制響應的。 ## 用法調整 ### 原來`Query`類的`raw`方法移動到`Db`類 雖然用法上沒有改變,但`Db::raw()`方法的調用效率會更高一些。或者你可以直接使用新的助手函數`raw`替代`Db::raw`。 ### 原來的`Expression`類改為`Raw`類 原來的`think\db\Expression`類更改為`think\db\Raw`類,更加貼切。 ### 多對多關聯的`pivotDataName`方法更名為`name`方法 使用更加簡潔的`name`方法替代原來的`pivotDataName`方法。 ## 廢棄用法和參數 ### 取消`Query`類的`extend`方法 取消了`Query`類的`extend`方法,如果需要擴展查詢方法,建議自定義`Query`類并繼承系統的`think\db\Query`類即可,然后在模型中定義`query`屬性或者配置數據庫連接的`query`參數為你的自定義類。 ### 取消`Request`類的`hook`方法 由于不建議擴展`Request`類的方法,該方法已經在最新版本中取消。 ### 取消`URL`參數模式配置 原來的URL參數模式配置參數`url_param_type`,統一使用參數/值的方式。 ## 更新日志 * 改進Url類`build`方法 * 修復獲取當前頁碼數據類型 * 修正`parseKey`方法傳入數值的情況 * 改進`optimize:config`指令對`declare`申明的支持 * 取消URL參數模式配置 * 增加`optimize:facade`指令用于生成`facade`類的方法注釋 * 取消`Query`類的`extend`方法 * 原來的`Expression`類更改為`Raw`類 * 增加新的`Expression`類用于表達式查詢擴展 * `Collection`類增加`whereLike`/`whereNotLike`/`whereIn`/`whereNotIn`/`whereBetween`/`whereNotBetween`等快捷方法 * Query類的`raw`方法移動到Db類 * 取消`Request`類的`hook`方法 * 修正`Route::view`方法 * 優化模型獲取器方法 * 多對多關聯的`pivotDataName`方法更名為`name`方法 * Query類增加`partition`/`duplicate`/`extra`方法 * 改進mysql驅動支持分區和`duplicate`以及額外參數 * mysql驅動的`insert`方法改用更清晰的`insert set`語法 * 修正`Event`類`bind`屬性定義 * 修正驗證類的`append`一處bug * 改進`Query`類`update`方法支持讀取模型的更新條件 * 取消模型類的`getUpdateWhere`方法統一使用`getWhere`方法 * 改進query類的`fetchArray`方法處理 * 改進路由類取消`app`屬性 * 增加`think\facade\RuleName`類 * 增加`whereFieldRaw`查詢方法 * 改進自動多應用名稱獲取 * App類增加`withEvent`方法支持關閉事件機制 * 改進`Dispatch`類對`var_dump`的支持 * 改進`hasMany`的`withCount`自關聯 * 修正純數字檢測參數類型轉換問題 * 修正`raw`助手函數 * `mysql`支持`find_in_set`查詢 * 改進`url`方法對自動多應用的支持
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看