2016-03-31 18 views
0

Ich habe zwei Tabellen, die ich in den Controller anschließen möchten ..Joining zwei Modelle in einem Paginieren

Das Paginieren Modell auch viele Bedingungen, aber ich wollte es hier vereinfachen.

$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 
    )   
); 

Ich bin nto, die bequem mit Kuchen, mehr von einem SQL Hintergrund kam, aber kann dies in der Steuerung durchgeführt werden, oder ist es, dass dies im Modell gehen sollte?

+0

hier ich ein funktionierendes Beispiel für bindModel mit Paginierung Hexe Pfosten für mich arbeitet Ordne es deinem Code zu – Salman

Antwort

0

Wie ich in einem gleichlautende Frage in „Regler Paginierung mit einer Unterabfrage“ beantwortet ist die gleiche Antwort auf diese Frage

$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'); 
Verwandte Themen