2016-09-06 6 views
2

Ich hatte Auktionsgebotsliste (Debit für jede Auktion war gleich 1). Ich habe den Code für "Debit" geändert, um die Anzahl der Auktions-IDs anzuzeigen. (Sie können Bild sehen). Aber jetzt habe ich Probleme mit Seitenumbruch. Es muss 26 anzeigen, aber Sie können 93 sehen. Ich möchte das Ergebnis wie im Bild, aber mit korrekten Seitenumbruch zeigen.Paginierung Anzahl falsch CakePHP 1.2

Hier ist mein Code

In Controller:

$this->paginate = array(
    'conditions' => array('Bid.user_id' => $user_id), 
    'limit' => 100, 
    'order' => array('Bid.created' => 'desc'), 
    'contain' => array('Auction' => array('Product')) 
); 

$this->set('bids', $this->paginate()); 

In Modell: außer Kraft setzen paginateCount()

function paginateCount($conditions = null, $recursive = 0, $extra = array()) { 
    $sql = " 
     SELECT user_id, 
       auction_id, 
       description, 
       debit, 
       COUNT(*) AS my_auct, 
       `credit`, 
       `created` 
      FROM `bids` 
     WHERE `user_id` = {$this->User->id} 
     GROUP BY auction_id, credit 
    "; 

    $this->recursive = $recursive; 
    $results = $this->query($sql); 

    return count($results); 
} 

Wie dieses Problem in der Steuerung nur beheben können (nicht paginateCount verwenden) und setze dieses Abfrageergebnis in View (jetzt habe ich in View berechnet).

Vielen Dank im Voraus!

enter image description here

+0

Ich bin nicht sicher, warum Sie 26 Ergebnisse erwarten, wenn Sie "Limit" => 100 "setzen. – Solarflare

Antwort

1

ich mein Problem gelöst. Hier ist mein Code in Controller

$this->paginate = array('conditions' => array('Bid.user_id' => $user_id),'fields' => array('COUNT(auction_id) as my_auct', 'Bid.*'), 'group' => array('Bid.auction_id', 'Bid.credit'), 'limit' => 10000, 'order' => array('Bid.created' => 'desc'), 'contain' => array('Auction' => array('Product'))); 

I paginateCount Funktion here und hinzugefügt in Modell gefunden:

public function paginateCount($conditions = null, $recursive = 0, $extra = array()) { 
       $conditions = compact('conditions'); 
       if ($recursive != $this->recursive) { 
        $conditions['recursive'] = $recursive; 
       } 
       unset($extra['contain']); 
       $count = $this->find('count', array_merge($conditions, $extra)); 

        if (isset($extra['group'])) { 
         $count = $this->getAffectedRows(); 
        } 

       return $count; 
      } 

Das Einzige, was ich nicht in "Credit" Spalte sind alle Werte (wenn ich von auction_id gruppiert zeigen und Kredit, es zeigt mir nur eine 15 und 100). Ich möchte alle Werte in dieser Spalte anzeigen

Irgendwelche Ideen?