find public

find( string $type 'first' , array $query array() )

Queries the datasource and returns a result set array.

Also used to perform notation finds, where the first argument is type of find operation to perform (all / first / count / neighbors / list / threaded), second parameter options for finding ( indexed array, including: 'conditions', 'limit', 'recursive', 'page', 'fields', 'offset', 'order')

Eg:

        find('all', array(
                'conditions' => array('name' => 'Thomas Anderson'),
                'fields' => array('name', 'email'),
                'order' => 'field3 DESC',
                'recursive' => 2,
                'group' => 'type'
));

In addition to the standard query keys above, you can provide Datasource, and behavior specific keys. For example, when using a SQL based datasource you can use the joins key to specify additional joins that should be part of the query.

find('all', array(
                'conditions' => array('name' => 'Thomas Anderson'),
                'joins' => array(
                array(
                                'alias' => 'Thought',
                                'table' => 'thoughts',
                                'type' => 'LEFT',
                                'conditions' => '`Thought`.`person_id` = `Person`.`id`'
                )
                )
));

代码示例:
$pv_count = $this->page_visit->findCount("page_visit.session_id='{$_session_id}' and page_visit.ip='{$ip}' and page_visit.url='{$_url}'");
$time = time();
$pv_new_insert = true;

if ($pv_count > 0) {
$pv = $this->page_visit->find('all', array(
'conditions' => array('session_id' => $_session_id, 'ip'=>$ip, 'url'=>$_url),
'fields' => array('*'),
'order' => 'time_start DESC',
'limit'=>1
));

$obj = $pv[0]["page_visit"];
$old_time_start = intval($obj['time_start']);
$sux = $time - $old_time_start;

$interval = $time - $pv['time_start'];

if ($sux > 3600) {
//超过一个小时后就算是新的访问记录
} else {
//一小时之内的刷新页面,只更新记录的更改时间
$pv_new_insert = false;
$obj['updated'] = $time;
$this->page_visit->save($obj);
}
}

if ($pv_new_insert) {//新增用户访问页面的记录
$pageVisit = Array();
$pageVisit['session_id'] = $_session_id;
$pageVisit['ip'] = $this->User->getip();
$pageVisit['url'] = $_url;
$pageVisit['time_start'] = $time;
$pageVisit['created'] = $time;
$pageVisit['updated'] = $time;
$pageVisit['device'] = $device . $_SERVER['HTTP_USER_AGENT'];
$this->page_visit->save($pageVisit);
}
posted on 2016-05-18 17:38  袁晓平  阅读(640)  评论(0编辑  收藏  举报