как показать вложенное значение ассоциации cakephp 3

я хочу запустить этот код, где он имеет вложенные данные ассоциации:

'VhpProducts.VhpHasilPencapaian',
'Departments.VhpHasilPencapaian',
'Groups.VhpHasilPencapaian' and to sum 'VhpHasilPencapaian.quantity'

но все, что я получил, было

Ошибка: SQLSTATE [42S22]: столбец не найден: 1054 Неизвестный столбец «VhpHasilPencapaian.amount» в «списке полей»

$vhpCriteria = $this->VhpCriterias->find('all', [
'contain' => [
'VhpProducts.VhpHasilPencapaian',
'Departments.VhpHasilPencapaian',
'Groups.VhpHasilPencapaian'
],
'field' => ['VhpProducts.name']
]);
$vhpCriteria->select([
'product' => 'VhpProducts.name',
'amountTotal' => $vhpHasilPencapaian->func()->sum('VhpHasilPencapaian.amount'),
'qty' => $vhpHasilPencapaian->func()->sum('VhpHasilPencapaian.quantity'),
]);

1

Решение

«Вложенные» ассоциации должны быть записаны так:

    $users = $this
->Users
->find('all')
->contain([
'Roles' => [
'Rights'
],
'Posts' => [
'Comments' => [
'Replies' => function($query) {
return $query
->where(['public' => 1]);
}
]
]
])
->toArray();
0

Другие решения

Вам нужно выбрать все данные, которые вы собираетесь использовать. Ваше поле должно быть полями и включать ВСЕ поля, которые вы хотите вернуть. В качестве альтернативы вы можете полностью исключить это, чтобы вернуть все. Если у вас нет поля, указанного в опции полей, оно не будет возвращено и вы не сможете его использовать.

$vhpCriteria = $this->VhpCriterias->find('all', [
'contain' => [
'VhpProducts.VhpHasilPencapaian',
'Departments.VhpHasilPencapaian',
'Groups.VhpHasilPencapaian'
],
'fields' => ['VhpProducts.name', 'ALL OTHER FIELDS']
]);

$vhpCriteria->select([
'product' => 'VhpProducts.name',
'amountTotal' => $vhpHasilPencapaian->func()->sum('VhpHasilPencapaian.amount'),
'qty' => $vhpHasilPencapaian->func()->sum('VhpHasilPencapaian.quantity'),
]);
0

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector