<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、智譜、豆包、星火、月之暗面及文生圖、文生視頻 廣告
                ### 2018 年 10 月 28 日 發布 該版本主要修正了上一個版本存在的一些問題,并改進了關聯查詢部分。支持上一個版本的無縫升級! ## 主要更新 * 聚合查詢方法的字段支持`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`](https://github.com/top-think/think-seaslog); * [`Swoole`擴展](https://github.com/top-think/think-swoole)更新至`2.0.14`版本; * [單元測試擴展](https://github.com/top-think/think-testing)更新至`2.0.5`版本;
                  <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>

                              哎呀哎呀视频在线观看