Я закодировал некоторое время с помощью cakephp2. Я использую таблицу с расчетными значениями в год и месяц. , например.Миграция cakephp 2.x to 3.x сгруппированный результат по запросу
YEAR | MONTH | VALUENAME | VALUE
2011 | 1 | value1 | 100
2011 | 2 | value1 | 120
2011 | 1 | value2 | 1234
2011 | 2 | value2 | 4342
etc.
Теперь я хочу иметь годовые значения суммы за «имя_цены». В 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. Я немного запутался о том, как относиться к Query-Object в правильном направлении :-( Вот что я до сих пор:
$yearvalues->select(['Aggregation.value_name',
'sum_value' => $yearvalues->func()->sum('Aggregation.value'), 'y'])
->group(['Aggregation.y', 'Aggregation.value_name']);
Может кто-то помочь мне с правильным подходом
ТНХ Оливер