2016-09-06 90 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)。我想显示信贷栏中的所有值

有没有想法?