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

                ## 助手函數:model( ) >[info] 與數據庫查詢一樣,模型也提供了助手函數:model( )來方便開發者。 *** #### 1. 功能:簡化模型實例化工作。 >[warning] model函數類似于ThinkPHP3.2.3版中大寫字母方法M( )和D( )。 *** #### 2. 源碼:/thinkphp/Helper.php (助手函數類) >[info] 助手函數類隨框架自動加載,不需要手工導入 * model( )函數源碼: ~~~ /** * 實例化Model * @param string $name Model名稱 * @param string $layer 業務層名稱 * @param bool $appendSuffix 是否添加類名后綴 * @return \think\Model */ function model($name = '', $layer = 'model', $appendSuffix = false) { return Loader::model($name, $layer, $appendSuffix); } ~~~ >[info] 源碼很簡單,就是調用加載器靜態調用了model方法來完成快速實例化操作。 *** #### 3. 實例演示: * 創建模型類:/application/index/mode/Staff.php ~~~ <?php namespace app\index\model; //導入模型類 use think\model; class Staff extends model { //自定義模型類代碼 } ~~~ **任務** :查詢編號id=1009的員工信息(id編號,姓名name,工資salary) * 控制器:/application/index/controller/Index.php ~~~ <?php namespace app\index\controller; class Index { public function index(){ //獲取滿足條件的單個記錄:返回一個數據對象 $data = model('Staff')->field('id,name,salary')->where('id = 1009')->find(); //解析數據對象中的原始數據:$data屬性 $result = $data -> getData(); //輸出結果:二維數組 dump($result); } } ~~~ **代碼分析:** >[info] 1. 無須引入自定義模型類:use app\index\model\Staff; > 2. model函數返回的是模型對象,可以直接調用數據庫方法完成查詢操作; > 3. 本例中,model函數返回的是對象,不是類,不能靜態調用get方法完成操作; > 4. 盡管調用的是數據庫查詢方法find( )完成,但返回的仍是模型對象,不是二維數組; > 5. 所以要得到原始數據,必須對數據對象$data添加getData操作來獲取原始數據; * 返回結果: ~~~ array(3) { ["id"] => int(1009) ["name"] => string(9) "老頑童" ["salary"] => float(5000) } ~~~ * 對應的SQL語句: ~~~ SELECT `id`,`name`,`salary` FROM `tp5_staff` WHERE ( id = 1009 ) LIMIT 1 ~~~ * 用SQLPRO for MySQL查看: ![](https://box.kancloud.cn/87cabf39346059ddeb5cd60e1fe1a5b1_663x268.png) * * * * * #### 4. 總結: >[warning] 助手函數model語法簡單,代碼清晰,但執行效率遠低于模型靜態方法查詢!靜態方法語法較復雜,代碼量大,但執行效率高,適合裝逼。究竟用哪個,讀者自己決定吧!總之,我是一直堅持用靜態方法查詢。
                  <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>

                              哎呀哎呀视频在线观看