2015-01-31 3 views
0

Как это сделать? Или это возможно? Я хочу добавить строку только для общего с разбиением на страницы. Я новичок в разработке .. Надеюсь, что вы можете помочь мне с этой проблемой .. Спасибо ..CAKEPHP - SUM with Paginate Settings

Вот постраничной функция в модели

public function generateSettingsForPager($transportId, $year){ 
    $conditions['delete_flag'] = 0; 

    if($transportId){ 
     $conditions['transport_id'] = $transportId; 
    } 

    if($year){ 
     $conditions['year'] = $year; 
    } 

    $settings = array (
     'fields' => 'id, year, transport_id, item, description, currency, budget, exchange_rate, all_in_php', 
     'limit' => 30, 
     'recursive' => -1, 
     'order' => array(
      'id' => 'desc' 
     ), 
     'conditions' => $conditions 
    ); 

    return $settings; 
} 

Мой индекс функции в контроллере

public function index(){ 

$getData = $this->request->query; 
$transportId = isset($getData['transport_id']) ? $getData['transport_id'] : null; 
$year = isset($getData['year']) ? $getData['year'] : null; 

$this->paginate = $this->UpgradingAndModification->generateSettingsForPager($transportId, $year); 
$upgradingAndModifications = $this->paginate('UpgradingAndModification'); 

$this->set('transportId', $transportId); 
$this->set('year', $year); 
$this->set('upgradingAndModifications', $upgradingAndModifications); 

} 

Это должен быть индексный вид. См. Снимок экрана.

http://awesomescreenshot.com/0b94avre47

То, что я получил до сих пор, так же, как и с этим скриншотом, но пока нет.

+0

Хочет сумму определенного поля –

+0

Если вы пытаетесь суммировать значение стоимости одной страницы данных, сделать это в вид. Если вам нужна сумма для всех результатов поиска, независимо от того, на какой странице вы находитесь, вам нужно будет запустить второй запрос, который возвращает сумму полей. – AgRizzo

+0

@AbhijeetKambli, да, я хочу, чтобы сумма одного поля была «All In USD». – banban

ответ

0

Попробуйте:

SUM(col1+col2) as total 

В постраничных настройках

public function generateSettingsForPager($transportId, $year){ 
    $conditions['delete_flag'] = 0; 

    if($transportId){ 
     $conditions['transport_id'] = $transportId; 
    } 

    if($year){ 
     $conditions['year'] = $year; 
    } 

    $settings = array (
     'fields' => 'id, year, transport_id, item, description, currency, budget, exchange_rate, SUM(col1+col2) as total', 
     'limit' => 30, 
     'recursive' => -1, 
     'order' => array(
      'id' => 'desc' 
     ), 
     'conditions' => $conditions 
    ); 

    return $settings; 
}