2016-03-31 30 views
0

我有,我想在控制器中加入兩個表..加入兩款車型在PAGINATE

的PAGINATE模型也有很多的條件,但我想簡化它在這裏。

$Table = $this->Table->query(' 
SELECT Table.id FROM Table 
       INNER JOIN TableA ON Table.id = TableA.table_id 
       INNER JOIN TableA.Table_id = TabelB.id 
       WHERE 
       IFNULL(Table.x,0) <> 0 
       GROUP BY Table.id 
       HAVING COUNT(*) > 1'); 


$this->paginate = array(
'paramType' => 'querystring' 
,'joins' => $Table 
    )   
); 

我n要的是舒適的蛋糕,從SQL背景的多,但可以在這個控制器來完成或者是它,這應該在模型去?

+0

這裏我張貼bindModel與分頁女巫的工作示例爲我工作了同樣的答案將其與您的代碼相匹配 – Salman

回答

0

正如我在同一個問題回答「使用子查詢控制器分頁」這裏是這個問題

$this->paginate = array(
'paramType' => 'querystring', 
'joins' => array(
    array(
    'table' => '(SELECT Table.id 
       FROM Table 
       INNER JOIN TableA ON Table.id = TableA.Table_id 
       INNER JOIN TableB ON TableA.TableB_id = TableB.id 
       WHERE 
       1 = 1 
       GROUP BY Table.id 
       HAVING COUNT(*) = 1)' 
     'alias' => 'Table_x', 
     'type' => 'INNER', 
     'conditions' => array('Table_x.id = Table.id') 
     ) 
    ) 
); 


$Table = $this->paginate(); 
0
$UserId = $this->Auth->user(id); 
$this->Rate->bindModel(array('belongsTo'=>array('Vehicle'=>array('className'=>'Vehicle','foreignKey'=>'vehicle_id'),),),false); 

    $this->paginate = array('conditions'=>array('Rate.user_id'=>$UserId), 
         'order'  => array('Rate.created DESC'), 
         'limit'  =>'2' 
         );  
    $rating = $this->paginate('Rate');