ポイントと呼ばれるフィールドの合計を取得する方法について、高低を検索しました。合計の数値が 1 つだけ必要ですが、取得できる最善の方法は、ポイント テーブルのレコードと、メンバーの関連レコードのリストです。
$totalPoints = $this->Member->Point->find('all', array(
array('fields' => array('sum(Point.points) AS Point.ctotal'))));
ポイントと呼ばれるフィールドの合計を取得する方法について、高低を検索しました。合計の数値が 1 つだけ必要ですが、取得できる最善の方法は、ポイント テーブルのレコードと、メンバーの関連レコードのリストです。
$totalPoints = $this->Member->Point->find('all', array(
array('fields' => array('sum(Point.points) AS Point.ctotal'))));
ドキュメントで文書化および提案されているように、virtualFields を使用しないのはなぜですか? http://book.cakephp.org/2.0/en/models/virtual-fields.html
$this->Member->Point->virtualFields['total'] = 'SUM(Point.points)';
$totalPoints = $this->Member->Point->find('all', array('fields' => array('total')));
これはずっときれいです。
また、$options 配列 ( ) で取得した double 配列にも注意してください...find('all', array(array(...
。そして、単一/フラット配列のみをどのように使用したか。これが、フィールドとしての SUM() 呼び出しが機能しない理由です。
上記のマークの答えは正しいです。これを行うことができることを追加したいだけです:
$totalPoints = $this->Member->Point->find('first', array(
array('fields' => array('sum(Point.points) AS Point__ctotal'))));
$totalPoints
これがあります:
$totalPoints['Point']['ctotal']