

こんにちは。CakePHP3 で家計簿を作るにあたって、買ったものの金額の合計値を出せるようにしたいと思っています。

公式マニュアルを見ながら、 `select sum` の値を書いたのですが、結果ではなく発行された SQL そのものが出てしまいます。  
なぜなのでしょうか...。

[code]

    //Householdscontroller.php
    public function index()
    {
        //db作ってbakeしたもの
        $this->paginate = [
            'contain' => ['Tags']
        ];
        $this->set('households', $this->paginate($this->Households));
        $this->set('_serialize', ['households']);
    
        //合計金額を出す処理
        $query = $this->Households->find();
        $amount = $query
                ->where(['status' => 'out'])
                ->select(['sum' => $query->func()->sum('payment')]);
        $this->set('amount', $amount);
    }
    
[/code]

`$amount` の部分を view で見てみると、

[code]

    SELECT (SUM(payment)) FROM households Households WHERE status = :c0
    
[/code]

と出ています。SQL ではなく数字が欲しいです。

ちなみにこの from 以下が二つある理由もよくわからないのですが、  
phpMyAdmin でそのまま実行してみたら値は無事取得できていました。


CC BY-SA 4.0
2016-01-07T02:38:20.713
20694
2019-06-01T19:02:14.080
2019-06-01T19:02:14.080
32986
12316
question
cakephp
CakePHP3でselect sum()の値を取得したいのですが


$amount->first()、または、$amount->all()としてみてください。  
それでentityが取れるので$entity->sumとかで合計値が取れると思います。  
連想配列が取りたい場合は->toArray()で取れます。


CC BY-SA 3.0
2016-01-26T14:33:05.993
21346
2016-01-26T14:33:05.993
10712
20694
answer