CakePHP(v3.x),カラムの合計を表示する.

cakePHPのクエリビルダーを用いてあるカラムの合計値を得たい時, ここではItemがuserとpriceというカラムを持っていて,あるUserに対する合計金額を取得したいときのクエリビルダについて書いていきます.

use Cake\ORM\TableRegistry;

$Items_Table = TableRegistry::get('Items');

$query = $Items_Table->find('all');

$total_price = $query
  ->where(['Items.user' => 'Tanaka'])
  ->select(['total_priuce' => $query->func()->sum('Items.price') ])
  ->enableHydration(false)
  ->first();
// ['total_price' => 123000]

ここで

$query->func()->sum('Some.column_name')

と書くことで,SQL関数を使用することができます. 他にもSQL関数がありますが同様にして使用できます.