2013-02-28 51 views
0

向包含连接语句的activerecord查询添加限制的正确方法是什么?我已经有一个ActiveRecord加入其转换为正确的SQLphpactiverecord加入限制

static $belongs_to = array(
array('job_request') 
); 

$requests = $this->all(array(
    'joins' => array('job_request'), 
    'conditions' => array('DATE(job_date) >= ? AND DATE(job_date) <= ? AND' 
       . ' user_id = ?', $start_date, $end_date, $userid)) 
); 

把它转换成SQL作为

SELECT `job_applications`.* FROM `job_applications` INNER JOIN `job_requests` 
ON(`job_applications`.job_request_id = `job_requests`.id) WHERE 
DATE(job_date) >= '2013-01-28' AND DATE(job_date) <= '2013-03-04' 
AND user_id = '1' 

,但如果我增加一个限制,该连接是从SQL查询

删除声明
$requests = $this->all(array(
    'joins' => array('job_request'), 
    'conditions' => array('DATE(job_date) >= ? AND DATE(job_date) <= ? AND' 
       . ' user_id = ?', $start_date, $end_date, $userid)), 
      array('limit' => 200, 'offset' => 0) 

);

生成

SELECT * FROM `job_applications` LIMIT 0,999999 

回答

0

限制和偏移所述第一阵列内的归属。

array('conditions'=>'...', 
     'joins'=>'...', 
     'limit'=>5', 
     'offset'=>5 
); 

你的阵列看起来像

array('conditions'=>'...', 
     'joins'=>'...'), 
     array('limit'=>5','offset'=>5) 
);