Я просматриваю документы CakePHP и нигде не вижу, чтобы объяснить, как вы выполняете подзапрос в операторе MySQL.По сути, я хотел бы подсчитать количество кредитов, которые каждый пользователь имеет в качестве поля, но в данный момент он суммирует суммы кредитов для всех пользователей в одном поле:
$this->Users->find()
->contain(['Plans','Products'])
->contain('Credits', function ($q) {
return $q->select(['count' => $q->func()->count('*')]);
})->group(['Users.id']);
Запрос, который я пытаюсь выполнитьсоздать больше похоже на:
SELECT *, (SELECT COUNT(*) FROM credits Credits WHERE Credits.user_id = Users.id) as credit_count FROM users Users group by Users.id ASC