本文整理汇总了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);
}