2016-09-06 92 views
2

我拍賣的競標名單(每次拍賣的借方等於1)。爲了顯示「拍賣ID」,我更改了「借記」的查看代碼。 (你可以看照片)。 但現在我有分頁問題。它必須顯示26,但你可以看到93. 我想顯示結果如圖中,但正確的分頁。分頁計數錯誤Cakephp 1.2

這裏是我的代碼

在控制器:

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

在型號:覆蓋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); 
} 

如何只能在控制器解決這個問題(不使用paginateCount)和把這個查詢結果放到View中(現在我在View中進行了計算)。

在此先感謝!

enter image description here

+0

我不確定爲什麼你期望26個結果,當你設置「限制」=> 100'。 – Solarflare

回答

1

我解決我的問題。在這裏我的代碼在控制器

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

我發現paginateCount功能here,並在模型中加入:

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; 
      } 

我不能在「信用」列顯示唯一的事情是所有的值(當我通過auction_id分組和信用,它顯示給我只有一個15和100)。我想顯示信貸欄中的所有值

有沒有想法?