本文整理匯總了PHP中Base_model::find方法的典型用法代碼示例。如果您正苦於以下問題:PHP Base_model::find方法的具體用法?PHP Base_model::find怎麽用?PHP Base_model::find使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在類Base_model
的用法示例。
在下文中一共展示了Base_model::find方法的3個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的PHP代碼示例。
示例1: find
public function find($cond = array(), $select = '', $return_dyadic_array = FALSE)
{
//{{{
$this->_CI->load->model('User', 'user_m', TRUE);
$this->_CI->load->model('Scheme', 'scheme_m', TRUE);
$retweets = parent::find($cond, $select, TRUE);
if (empty($retweets)) {
return array();
}
//獲取的 $retweets 就是按 retweet_id 的升序排列
//隻需要在遍曆時 查詢餘下部分是否有包含相同 scheme_id 的
//數據並清除之便可
//@todo 為了節約時間 可以利用的優勢就是 返回的集合不需要是有序的 ( 因為之後還會再按照時間排序 )
foreach ($retweets as $i => $retweet) {
//@todo 一切都是為了所謂的合並轉發 此算法有改進的餘地 起碼不必每次都計算 sizeof
if (sizeof($retweets) > 1) {
//標誌是否已經刪除了某條記錄
$has_unset = FALSE;
//取餘下的數組
array_walk(array_slice($retweets, $i), function ($value, $key) use(&$retweets, $retweet, $i, &$has_unset) {
if ($retweet['scheme_id'] === $value['scheme_id']) {
//有重複 刪除當前的( 下標為$i ) 的記錄
unset($retweets[$i]);
$has_unset = TRUE;
}
});
if ($has_unset === TRUE) {
continue;
}
}
$prev_retweet_id = $retweet['prev_retweet_id'];
if (is_numeric($prev_retweet_id) && $prev_retweet_id > 0) {
//有效的 prev_retweet_id 意味著是 二轉 或以上
//此處如果調用本函數的話 會形成一個遞歸 獲取完整的轉發鏈
//但是目前(隻使用二轉的情況)是沒有必要的
$prev_retweet = parent::find(array('retweet_id' => $prev_retweet_id));
//此處的斷言是 prev_retweet 信息是一定存咋的 若不存在 則需要觸發一個異常
if (empty($prev_retweet)) {
throw new Exception('通過有效的 prev_retweet_id 獲取了一個空的 retweet.[prev_retweet_id=' . $prev_retweet_id . ']');
}
//獲取相關用戶信息
$prev_retweet_user = $this->_CI->user_m->find(array('user_id' => $prev_retweet['retweeter_id']));
} else {
//無效的 prev_retweet_id 意味著是一轉
//"轉發自"用戶信息就是方案的所有用戶
$scheme = $this->_CI->scheme_m->find(array('scheme_id' => $retweet['scheme_id']));
$prev_retweet_user = $scheme['holder'];
}
//獲取當前 retweeter 用戶的信息
$retweets[$i]['retweeter'] = $this->_CI->user_m->find(array('user_id' => $retweet['retweeter_id']));
$retweets[$i]['prev_retweet_user'] = $prev_retweet_user;
$retweets[$i]['formated_time'] = $this->format_time($retweet['time']);
}
if ($return_dyadic_array == FALSE && sizeof($retweets) == 1) {
return array_shift($retweets);
}
return $retweets;
}
示例2: get_user_id_by_nick
public function get_user_id_by_nick($user_nick = '')
{
//{{{
$user_id = NULL;
if (!empty($user_nick)) {
$user_info = parent::find(array('nick' => $user_nick));
if (empty($user_info)) {
throw new Exception("查找的用戶 nick 不存在,但是其方案信息卻存在於用戶頁麵上. user_nick=[{$user_nick}]");
}
if (sizeof($user_info) > 1) {
throw new Exception("查找的用戶 nick 在數據庫中存在多條記錄. user_nick=[{$user_nick}]");
}
$user_id = $user_info['user_id'];
}
return $user_id;
}
示例3: get_expire_time
public function get_expire_time($scheme_id)
{
//{{{
$this->_CI->config->load('scheme');
$expire_time = $this->_CI->config->item('expire_time');
$scheme = parent::find(array('scheme_id' => $scheme_id));
if (empty($scheme)) {
return -1;
}
//獲取方案 發布/轉發 時間
$time = strtotime($scheme['time']);
return date('Y-m-d h:i:s', $time + $expire_time);
}