cakephp2でしばらくコード化しました。私は年と月ごとに計算された値を持つテーブルを使用します。例: cakefp 2.xから3.xへの移行クエリからグループ化された結果
YEAR | MONTH | VALUENAME | VALUE
2011 | 1 | value1 | 100
2011 | 2 | value1 | 120
2011 | 1 | value2 | 1234
2011 | 2 | value2 | 4342
etc.
ここで、「valuename」ごとに年額合計値を設定します。 Cake2で 私は私が(私の見解のために重要である)配列キーとして年だ結果、取得するには、次の式を使用:私は次しまった私のモデル「集約」で
$yearvalues = $this->Aggregation->find('list', [
"fields" => ['Aggregation.value_name', 'Aggregation.sum_value', 'Aggregation.y'],
"group" => ['Aggregation.y', 'Aggregation.value_name']
]);
を:
次のようにpublic $virtualFields = array(
'sum_value' => "sum(value)",
);
結果が探している:
Array
(
[2011] => Array
(
[value1] => 1429.00
[value2] => 1180.00
[value3] => 0.00
[value4] => 804.00
)
[2012] => Array
(
[value1] => 1878.00
[value2] => 2793.00
[value3] => 3900.00
[value4] => 1606.00
)
...
)
は、どのように私はCake3に今と同じ結果を得るのですか。私は私が今までに得たものだ :-(正しい方法でクエリオブジェクトを処理する方法について混乱して少しだ:
$yearvalues->select(['Aggregation.value_name',
'sum_value' => $yearvalues->func()->sum('Aggregation.value'), 'y'])
->group(['Aggregation.y', 'Aggregation.value_name']);
誰かが正しいアプローチで私を助けることができる
?THX あなたはあまりにもCakePHPの3.xの中で、このためlist
ファインダーを使用することができオリバー