當前位置: 首頁>>代碼示例>>PHP>>正文


PHP Db::table方法代碼示例

本文整理匯總了PHP中think\Db::table方法的典型用法代碼示例。如果您正苦於以下問題:PHP Db::table方法的具體用法?PHP Db::table怎麽用?PHP Db::table使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在think\Db的用法示例。


在下文中一共展示了Db::table方法的2個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的PHP代碼示例。

示例1: getAuthList

 /**
  * 獲得權限列表
  * @param integer $uid 用戶id
  * @param integer $type
  */
 protected function getAuthList($uid, $type)
 {
     static $_authList = array();
     //保存用戶驗證通過的權限列表
     $t = implode(',', (array) $type);
     if (isset($_authList[$uid . $t])) {
         return $_authList[$uid . $t];
     }
     if ($this->_config['AUTH_TYPE'] == 2 && isset($_SESSION['_AUTH_LIST_' . $uid . $t])) {
         return $_SESSION['_AUTH_LIST_' . $uid . $t];
     }
     //讀取用戶所屬用戶組
     $groups = $this->getGroups($uid);
     $ids = array();
     //保存用戶所屬用戶組設置的所有權限規則id
     foreach ($groups as $g) {
         $ids = array_merge($ids, explode(',', trim($g['rules'], ',')));
     }
     $ids = array_unique($ids);
     if (empty($ids)) {
         $_authList[$uid . $t] = array();
         return array();
     }
     $map = array('id' => array('in', $ids), 'type' => $type, 'status' => 1);
     //讀取用戶組所有權限規則
     $rules = \think\Db::table($this->_config['AUTH_RULE'])->where($map)->field('condition,url,module')->select();
     //循環規則,判斷結果。
     $authList = array();
     //
     foreach ($rules as $rule) {
         if (!empty($rule['condition'])) {
             //根據condition進行驗證
             $user = $this->getUserInfo($uid);
             //獲取用戶信息,一維數組
             $condition = '';
             $command = preg_replace('/\\{(\\w*?)\\}/', '$user[\'\\1\']', $rule['condition']);
             @eval('$condition=(' . $command . ');');
             if ($condition) {
                 $authList[] = strtolower($rule['module'] . "/" . $rule['url']);
             }
         } else {
             //隻要存在就記錄
             $authList[] = strtolower($rule['module'] . "/" . $rule['url']);
         }
     }
     $_authList[$uid . $t] = $authList;
     if ($this->_config['AUTH_TYPE'] == 2) {
         //規則列表結果保存到session
         $_SESSION['_AUTH_LIST_' . $uid . $t] = $authList;
     }
     return array_unique($authList);
 }
開發者ID:mcmf,項目名稱:auth,代碼行數:57,代碼來源:Role.php

示例2: detach

 /**
  * 解除關聯的一個中間表數據
  * @access public
  * @param integer|array $data 數據 可以使用關聯對象的主鍵
  * @param bool $relationDel 是否同時刪除關聯表數據
  * @return integer
  */
 public function detach($data, $relationDel = false)
 {
     if (is_array($data)) {
         $id = $data;
     } elseif (is_int($data)) {
         // 根據關聯表主鍵直接寫入中間表
         $id = $data;
     } elseif ($data instanceof Model) {
         // 根據關聯表主鍵直接寫入中間表
         $relationFk = $data->getPk();
         $id = $data->{$relationFk};
     }
     // 刪除中間表數據
     $pk = $this->parent->getPk();
     $pivot[$this->localKey] = $this->parent->{$pk};
     $pivot[$this->foreignKey] = is_array($id) ? ['in', $id] : $id;
     Db::table($this->middle)->where($pivot)->delete();
     // 刪除關聯表數據
     if ($relationDel) {
         $model = $this->model;
         $model::destroy($id);
     }
 }
開發者ID:xuyi5918,項目名稱:ipensoft,代碼行數:30,代碼來源:Relation.php


注:本文中的think\Db::table方法示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。