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

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                # 模型動作 ## 介紹 HDPHP 實現了ActiveRecords模式的ORM模型,表映射到類,記錄映射到對象。最大的特點就是使用方便和便于理解(因為采用了對象化),提供了開發的最佳體驗,從而達到敏捷開發的目的。 如果數據庫表里有 updated_at 和 created_at 兩個字段,可以通過模型自動操作這兩個字段,只要將模型屬性 $timestamps 屬性設為 true 即可。 [TOC] ## 數據庫組件 模型繼承了 [Db數據庫管理組件](http://www.hmoore.net/houdunwang/hdphp3/215182) 所以 [Db](http://www.hmoore.net/houdunwang/hdphp3/215182) 中的所有方法都可以調用,調用時可以直接使用靜態方式調用 News::find(3) 。 ## 查詢 因為更多情況下面查詢條件都是以主鍵或者某個關鍵的字段。這種類型的查詢,HDPHP 有著很好的支持。 先舉個最簡單的例子,假如我們要查詢主鍵為8的某個用戶記錄,如果按照之前的方式,我們可能會使用下面的方法: ``` // 查找id為8的用戶數據,返回值為數組 User::where('uid',8)->find(); ``` 現在可以直接寫成: ``` //返回值為模型對象 User::find(8); //將結果以數組返回 User::find(8)->toArray(); ``` #### findOrFail 找不到記錄時顯示404頁面 ~~~ User::findOrFail(8); ~~~ ## 新增 新增數據后當前模型實例將與新增記錄使用ORM關系,即當前模型包括新增數據。返回值為自增的主鍵編號。 所謂新增就是添加的數據中不含有主鍵數據。 ``` $Model = new User(); //然后直接給數據對象賦值 $Model['name'] = 'hdphp'; $Model['email'] = 'houdunwang@126.com'; //把數據對象添加到數據庫 $Model->save(); ``` ## findOrCreate 根據主鍵編號創建模型,當記錄不存在時創建新的空模型。 ~~~ User::findOrCreate(3) ~~~ ## 更新 #### 更新找到的數據 要更新模型前必須先取出它,然后使用 save 方法完成更新操作。 ``` $model = News::find(1); // 查找主鍵為1的數據 $model->title = 'hdphp'; // 修改數據對象 $model->save(); // 保存當前數據對象 ``` #### 結合查詢語句更新 使用查詢語句更新是使用的 [Db數據庫管理組件](http://www.hmoore.net/houdunwang/hdphp3/215182) 操作而不經過模型處理,所以將不會執行自動驗證,自動過濾,自動完成等操作。 ``` $model->where('id', '>', 100)->update(['cid' => 2]); ``` #### 更新模型的時間戳 需要設置模型屬性 $timestamps 為true才可以成功執行本指令。使用 [carbon](http://carbon.nesbot.com) 組件進行時間管理 ``` $model = News::find(1); $model->touch(); //表中需要存在 updated_at 字段 ``` ## 刪除 #### 刪除當前模型數據 可以刪除當前模型的數據,這時的模型等同于一個新模型,模型沒有與表記錄進行關聯。 ``` $model =News::find(3); //刪除當前的數據對象 $model->destory(); ``` #### 使用 [Db數據庫管理組件](http://www.hmoore.net/houdunwang/hdphp3/215182)刪除 模型內部使用了Db組件,所以Db組件中的所有方法都可以使用,當然包括刪除動作。 ``` // 刪除主鍵為8的數據 News::delete(8); // 刪除主鍵為5、6的多個數據 News::delete('5,6'); ``` ## 字段后處理 用于讀取數據成功時的對字段的處理后返回,比如我們想把字段 data 在查詢后進行 json_decode 處理,那么在模型中定義以下方法就可以了。 ~~~ public function getDataAtAttribute($val) { return json_decode($val, true) ?: ''; } ~~~ ## 錯誤處理 系統會將錯誤信息保存在模型的 **error** 屬性中,開發者也可以在模型方法中保存錯誤到 error 屬性中,這些錯誤都可以通過 getError()模型方法獲取到。 ``` $model->getError(); ```
                  <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>

                              哎呀哎呀视频在线观看