本文整理匯總了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);
}
示例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);
}
}