cakephp sumとvirtualFieldsで合計値を取得

2014年10月12日更新 view: 1341 view
photoBy: http://blog-imgs-51.fc2.com/1/9/9/1996128/oumisp_sam_a_480x480.jpg
スポンサードリンク

sumにしてみました

・getprice.php

構造
id,user_id,price

の、指定したユーザーIDのpriceの合計値を取得したい。

方法

下準備

・getprice.php モデル

class Getprice extends AppModel {
        
        var $virtualFields = array(
            'sumPrice' => 'SUM(price)'
        );
        
        
        /*
         [0] => Array
        (
            [Getprice] => Array
                (
                    [price] => 1650
                    [sumPrice] => 4350
                )

        )
        */
        
        
        /*
            データ無し
             [0] => Array
        (
            [Getprice] => Array
                (
                    [price] =>
                    [sumPrice] =>
                )

        )
        */
        
        function sum($user_id)
        {
            $res = $this->find('all',array('conditions' => array('user_id' => $user_id) , 'fields' => array('price','sumPrice')));
            if($res[0]['Getprice']['sumPrice'] == ''){
                $res = 0;
            } else {
                $res = $res[0]['Getprice']['sumPrice'];
            }
            
            return $res;
        }
        
    }

virtualfields で指定しておけば勝手にpriceを合計して sumPrice に値を入れてくれる。

使い方

function test()
{
    $this->Getprice = Classregistry::init('Getprice');
    $res = $this->Getprice->sum(9);
    pr($res);
}

たったこれだけで Getprice モデルの user_id 9 の 合計ポイントを返してくれる。

スポンサードリンク

関連記事

関連カテゴリ

コロ助

web関連の記事や制作系の記事をどんどんまとめていきます。 宜しくお願いします!

ピックアップ

パソコン・ソフトウェア ランキング

2月25日 ( 土 ) にアクセスが多かった記事はこちら!