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

                # Api開發---單條信息復雜關聯顯示 我們看一下上一節通過 http://study.mikkle.cn/api/admin_user/adminUserInfo 獲取的Json ![](https://box.kancloud.cn/6f9abd3e1be6b11b11dbf78cad043ea7_667x347.png) 這樣看感覺亂糟糟的 非常不方便 我們還是用瀏覽器調試工具查看 > 大部分瀏覽器都有 按F12打開 ![](https://box.kancloud.cn/8b8638ba0f37bf70d4f162ecfdc2fa56_639x535.png) 在數據中有部門 顯示的是id ~~~ "department_id":1 //部門 ~~~ 在現實的查詢 使用的都是該部門的中文名字 那我們該如何簡單方便的做到 ## 關聯顯示的實現 我們在控制器中 新建一個 adminUserWithDepartment方法 為了對比兩個接口顯示的差別 我把上面的方法改動一下 getdata()為獲取原信息 ~~~ public function adminUserInfo(){ $open_id='oO059v39zsst76IkuiYV3yMvc4Sw'; $user_info=model('base/AdminUser')->getInfoByOpenid($open_id); return $user_info->getdata(); } public function adminUserWithDepartment(){ $open_id='oO059v39zsst76IkuiYV3yMvc4Sw'; $user_info=model('base/AdminUser')->getInfoByOpenid($open_id); return $user_info->toArray(); } ~~~ 那么我們再去模型添加一個方法 另外再為Department字段做一個獲取器 獲取器詳細的介紹請看官方手冊 http://www.hmoore.net/manual/thinkphp5/135192 ~~~ class AdminUser extends Model { protected $table = "my_admin_user"; public function getInfoByOpenid($open_id){ return $this->where('weixin_openid',$open_id)->find(); } } ~~~ 關聯獲取前還要建立一個新的模型AdminDepartment ![](https://box.kancloud.cn/8b98e3a425256df23a2c90a334af5cbf_277x250.png) 根據數據庫 建立代碼如下 注意命名空間 文件名 類名 ~~~ <?php namespace app\base\model; use think\Model; class AdminDepartment extends Model { protected $table = "my_admin_department"; } ~~~ ## 建立關聯獲取器 我們在AdminUser的model里做一個復雜的關聯獲取器 ~~~ //方法一 public function getDepartmentIdAttr($value,$data) { return $this->belongsTo('AdminDepartment','department_id','id')->where('id',$value)->value('name'); } //方法二 public function getDepartmentIdAttr($value,$data) { return $this->belongsTo('AdminDepartment','department_id','id')->where('id',$data['department_id'])->value('name'); } ~~~ 好了 現在我們訪問 http://study.mikkle.cn/api/admin_user/adminUserWithDepartment ![](https://box.kancloud.cn/acb2b3c5fc714f4cd02b5d86d98608e1_304x143.png) 現在已經顯示出來部門是中文的行政部 ~~~ department_id:"行政部" ~~~#### >[info] 關于關聯獲取器官方并沒有這種叫法, 這個方法即用到了獲取器 也用的關聯 大家也可以嘗試一下 一對多的 關聯獲取器 與獲取器還有很多中新玩法 大家以前通過 $value,$data這個兩個參數盡情玩耍吧 我看了一下數據庫結構 ![](https://box.kancloud.cn/e0721f795eaf2df81875bfb9e896fc25_840x243.png) 這個rule好像是對應 ![](https://box.kancloud.cn/b57cfa94eaeeaf0d36898ef961a24f01_570x677.png) 那我們就玩一個再復雜一點的 ## 復雜的關聯 一對多 獲取器 老規矩 建立模型 AdminRole和AdminRole #### AdminRole ~~~ <?php namespace app\base\model; use think\Model; class AdminRole extends Model { protected $table = "my_admin_role"; } ~~~ #### AdminNode ~~~ <?php namespace app\base\model; use think\Model; class AdminNode extends Model { protected $table = "my_admin_node"; } ~~~ ~~~ <?php namespace app\base\model; use think\Model; class AdminUser extends Model { protected $table = "my_admin_user"; public function getInfoByOpenid($open_id){ return $this->where('weixin_openid',$open_id)->find(); } public function getDepartmentIdAttr($value,$data) { return $this->belongsTo('AdminDepartment')->where('id',$value)->value('name'); } // 方法一 public function getRoleIdAttr($value,$data){ return $ids = $this->belongsTo('AdminNode')->where('id','in',$this->belongsTo('AdminRole')->where('id',$value)->value('rule'))->select(); } // 方法二 public function getRoleIdAttr($value,$data){ $ids = $this->belongsTo('AdminRole')->where('id',$value)->value('rule') ; return $this->belongsTo('AdminNode')->where('id','in',$ids )->select(); } } ~~~ Ok 那我們看看運行以后的代碼 太長 我省略了 ~~~ {"id":1,"department_id":"技術部","jobs_id":0,"weixin_openid":"oO059v39zsst76IkuiYV3yMvc4Sw","banding_code":"55229586246","role_id":[{"id":1,"aid":1,"node_name":"我的組織","module_name":"#","control_name":"#","action_name":"#","is_menu":1,"pid":0,"icon":"fa fa-globe","sort":255,"status":1,"create_time":"1970-01-01 08:00:00","update_time":"1970-01-01 08:00:00","group":null},{"id":2,"aid":1,"node_name":"員工管理","module_name":"admin","control_name":"User","action_name":"user","is_menu":1,"pid":1,"icon":"","sort":3,"status":1,"create_time":"1970-01-01 08:00:00","update_time":"2016-11-07 11:23:37","group":""},..... ~~~ 還是看看瀏覽器調試上的信息吧 ![](https://box.kancloud.cn/67d4322f7500792b3588a9ffd56b56e4_351x368.png) 至于一些簡單的字段調整什么的 我這里就不講了... 太low了
                  <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>

                              哎呀哎呀视频在线观看