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

                ??一站式輕松地調用各大LLM模型接口,支持GPT4、智譜、豆包、星火、月之暗面及文生圖、文生視頻 廣告
                模型的優勢不是用來做基礎的CURD操作的,雖然CURD操作也是一種最常見的業務邏輯,只是這些基本邏輯無需再定義額外的方法了,系統已經內置實現了。但實際的應用中,一般都需要根據業務需求來增加額外的業務邏輯方法。 以User模型為例,假設我們需要實現下列功能: 1. 用戶注冊; 2. 用戶登陸; 3. 獲取用戶信息; 4. 獲取用戶的身份角色; ...更多業務邏輯 可以在User模型添加下面的邏輯方法: ~~~ <?php namespace app\index\model; use think\Model; class User extends Model { /** * 注冊一個新用戶 * @param array $data 用戶注冊信息 * @return integer|bool 注冊成功返回主鍵,注冊失敗-返回false */ public function register($data = []) { $result = $this->validate(true)->allowField(true)->save($data); if ($result) { return $this->getData('id'); } else { return false; } } /** * 用戶登錄認證 * @param string $username 用戶名 * @param string $password 用戶密碼 * @return integer 登錄成功-用戶ID,登錄失敗-返回0或-1 */ public function login($username, $password) { $where['username'] = $username; $where['status'] = 1; /* 獲取用戶數據 */ $user = $this->where($where)->find(); if ($user) { if (md5($password) != $user->password) { $this->error = '密碼錯誤'; return 0; } else { return $user->id; } } else { $this->error = '用戶不存在或被禁用'; return -1; } } /** * 獲取用戶信息 * @param integer $uid 用戶主鍵 * @return array|integer 成功返回數組,失敗-返回-1 */ public function info($uid) { $user = $this->where('id', $uid)->field('id,username,email,mobile,status')->find(); if ($user && 1 == $user->status) { // 返回用戶數據 return $user->hidden('status')->toArray(); } else { $this->error = '用戶不存在或被禁用'; return -1; } } /** * 獲取用戶角色 * @return integer 返回角色信息或者返回-1 */ public function role() { $uid = $this->getData('id'); if ($uid) { $role = $this->getUserRole($uid); if ($role) { return $role; } else { $this->error = '用戶未授權'; return 0; } } else { $this->error = '請先登錄'; return -1; } } protected function getUserRole($uid) { return $this->table('role')->where('uid', $uid)->find(); } } ~~~ 我們先不要在意方法的實現細節(這些實現代碼并非完美,只是簡單的說明問題),里面的很多調用方法后面都會一一提及,這里只是告訴你如何在模型類里面添加自己的業務邏輯,下面同時給出在控制器中的調用參考。 先不要在意方法的實現細節(這些實現代碼并非完美,只是簡單的說明問題),里面的很多調用方法后面都會一一提及,這里只是告訴你如何在模型類里面添加自己的業務邏輯,下面同時給出在控制器中的調用參考。 ~~~ <?php namespace app\index\controller; use app\index\model\User; use think\Controller; use think\Session; class Index extends Controller { public function login() { return $this->fetch(); } public function doLogin(User $user, $username, $password) { $uid = $user->login($username, $password); if ($uid) { Session::set('user_id', $uid); $this->success('登錄成功'); } else { $this->error('登錄失敗'); } } public function register() { return $this->fetch(); } public function doRegister(User $user) { $data = $this->request->param(); $result = $user->register($data); if ($result) { $this->success('用戶注冊成功'); } else { $this->error($user->getError()); } } public function getUserInfo(User $user, $uid) { $info = $user->info($uid); if ($info) { $this->assign('user', $info); return $this->fetch(); } else { return '用戶不存在'; } } protected function getUserRole() { $uid = Session::get('user_id'); $user = User::get($uid); return $user->role(); } } ~~~ 控制器的詳細用法不屬于本書的討論范疇,如果有必要可以參考官方快速入門系列第三部:《控制器從入門到精通》。 從上面的用法中我們可以注意幾點: 1. 業務邏輯應當封裝到具體模型中,并由控制器來調用; 2. register和login方法獲取用戶主鍵的方法區別; 3. 可以設置模型的錯誤信息,并且用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>

                              哎呀哎呀视频在线观看