<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國際加速解決方案。 廣告
                # Repository * ## 定義 ### 目錄 ``` \app\common\repository ``` >具體repository下在分塊,可以根據不同功能劃分;默認這里創建的services所有應用都可以使用,如果不同應用想單獨創建repository,請在應用目錄下創建repository目錄,再具體實現不同repository類 repository是具體實現某個特定功能,比如用戶的列表查看搜索、用戶注冊、登錄等等都是具體功能 ``` repository<->dao<->model<->table ``` 和UserDao對應UserRepository,只需要在構造方法中注入UserDao就可以 ``` namespace app\common\repositories\user; use app\common\dao\user\UserDao; class UserRepository extends BaseRepository { protected $dao; public function __construct(UserDao $dao) { $this->dao = $dao; } public function getList(array $where, int $page, int $limit) { $query = $this->dao->search($where); $list = $query->page($page,$limit)->select(); $count =$query->count(); return compact('count','list'); } } ``` 每一個小的功能都可以定義為一個實現方法,比如:設置默認地址 ``` /** * 設置默認定制 * @param int $uid * @param int $id * @return bool */ public function setDefault(int $uid, int $id) { if (!$this->getAddress($id)) { return false; //'地址不存在'; } if (!$this->dao->update($uid, ['is_default' => 0], 'uid')) return false; //'取消原來默認地址'; if (!$this->dao->update($id, ['is_default' => 1])) return false; //'設置默認地址失敗'; return true; } ``` 如果添加一個的地址,并選擇了默認地址選項,則在添加的地址方法中調用`setDefault`方法 ``` public function add($uid,$data) { $data['uid] = $uid; $res = $this->dao->save($data); if(!$res) return false; if($data['is_default] == 1){ $this->setDefault($uid,$res['id]); } return true; } ``` >可以按照需要把不同功能點拆分為每一個方法,以實現代碼的最大復用,不用重復造輪子 * ## 使用 repository可以在控制器中,也可以不同repository之間互相調用(實現某一個復雜功能邏輯) ### 控制器中使用 也是在構造方法中注入當前repository,比如UserControlle注入 UserRepository ``` namespace app\controller; use app\Request; use app\common\repositories\user\UserRepository; class User { protected $repository; public function __construct(App $app, repository $repository) { parent::__construct($app); $this->repository = $repository; } public function lst($cid) { [$page, $limit] = $this->getPage(); $where = $this->request->params(['id']); $data = $this->repository->getList($where, $page, $limit); return app('json')->success($data); } } ``` 使用UserRepository具體方法可以使用`$this->repository` ``` $this->repository->search(); ``` ### 控制器中方法注入 某個特定方法注入某個repository ``` /** * 記錄用戶分享 * @param Request $request * @return mixed */ public function user_share(Request $request, UserBillRepository $services) { $uid = (int)$request->uid(); return app('json')->successful($services->setUserShare($uid)); } ``` UserBillServices用來記錄每一次分享 ### 不同services之間互相調用 首先引入需要使用的repository >使用`app()->make()`來創建repository類的實例 `app()->make()`使用: ``` /** @var UserReposotiroy $user */ $user = app()->make(UserReposotiroy::class); ```
                  <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>

                              哎呀哎呀视频在线观看