<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>

                ??碼云GVP開源項目 12k star Uniapp+ElementUI 功能強大 支持多語言、二開方便! 廣告
                ### 2018 年 10 月 20 日 發布 該版本主要修正了上一個版本的一些問題,并改進了全局查詢范圍的支持,同時包含了一個安全更新,支持上一個版本的無縫升級。 ## 主要更新 * 修正單一模塊下注解路由無效的問題 * 改進數據庫的聚合查詢的字段處理 * 模型類增加`globalScope`屬性定義 用于指定全局的查詢范圍 * 模型的`useGlobalScope`方法支持傳入數組 用于指定當前查詢需要使用的全局查詢范圍 * 改進數據集的`order`方法對數字類型的支持 * 修正上一個版本`order`方法解析的一處BUG * 排序字段不合法或者錯誤的時候拋出異常 * 改進`Request`類的`file`方法對上傳文件的錯誤判斷 ## 安全更新 本次發布的版本,包含了一個數據庫聚合查詢的安全更新。 如果你在使用聚合查詢的時候,聚合查詢的字段名由用戶輸入決定,可能會引發SQL注入,你應該盡快更新到新版本以解決安全隱患(感謝補天平臺反饋,漏洞編號`QTVA-2018-875147`)。 ## 新特性介紹 ### 排序字段不合法拋出異常 之前如果有非法的排序字段會直接忽略,新版會拋出一個異常。 ``` User::order('rand()')->select(); ``` 會拋出異常 ``` 排序表達式錯誤:rand() ``` 正確的寫法應該是 ``` User::orderRaw('rand()')->select(); ``` ### 數據集的`order`方法改進 數據集的`order`方法現在可以更好的支持數字類型的數據排序,`order`方法的第三個參數可以指定是否為數字類型(默認為數字類型進行排序)。 ``` // 查詢用戶列表 $users = User::where('status', 1)->select(); // 對用戶列表按照score字段降序排列 $list = $users->order('score', 'desc'); ``` 如果是需要對字符串類型的字段排序,可以使用 ``` // 查詢用戶列表 $users = User::where('status', 1)->select(); // 對用戶列表按照name字段升序排列 $list = $users->order('name', 'asc', false); ``` ### 全局查詢范圍改進 全局查詢范圍之前必須通過`base`方法來定義,現在可以使用在`globalScope`屬性中定義查詢范圍的名稱, ~~~ <?php namespace app\index\model; use think\Model; class User extends Model { // 定義全局的查詢范圍 protected $globalScope = ['status']; public function scopeStatus($query) { $query->where('status',1); } } ~~~ 或者使用`useGlobalScope`方法傳入數組的方式動態指定當前查詢的全局查詢范圍。 ``` User::useGlobalScope(['status'])->select(); ``` `useGlobalScope`方法的數據會覆蓋`globalScope`屬性定義,但如果傳入空的數組,則仍然會獲取`globalScope`屬性定義的全局查詢范圍。 ### `Request`類的`file`方法改進 如果你要獲取的上傳文件有任何的上傳錯誤情況,系統會拋出一個異常,而不是返回一個`Null`。 ``` try { $image = $request->file('image'); } catch (\Exception $e){ // 上傳發生錯誤 echo $e->getMessage(); } ``` 如果你獲取全部的上傳文件信息的話,即使包含上傳錯誤的數據,也不會拋出異常,錯誤的上傳數據會被忽略。 ``` // 如果image上傳存在錯誤,則不會包含在files信息里面 // 如果不希望如此結果,可以首先進行上傳驗證或者單獨獲取某個上傳文件 $files = $request->file(); ```
                  <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>

                              哎呀哎呀视频在线观看