У меня есть следующий код в определении таблицы.
$paginationQuery = $this->find()
->select([
'Members__id','Members__member_type','Members__first_name',
'Members__middle_name','Members__last_name','Members__suffix'
])
->contain([
'SocialMembers' => [
'foreignKey' => false,
'queryBuilder' => function (Query $q) {
return $q->where([
'Members.Members__id' => 'SocialMembers.full_member_id'
]);
}
]
])
->from([
$this->getAlias() => $query
])
->order([
'Members__last_name' => 'ASC',
'Members__first_name' => 'ASC'
]);
return $paginationQuery;
Это делается для разбиения на страницы результатов объединения двух наборов извлеченных данных.
Проблема возникает из queryBuilderфункция. Сгенерированное левое соединение выглядит так:
LEFT JOIN members SocialMembers ON (
SocialMembers.member_type = 2
AND Members.Members__id = 'SocialMembers.full_member_id'
)
В SocialMembers.full_member_id есть ненужная пара одинарных кавычек. Похоже, что queryBuilder правильно обрабатывает Members.Members__id, но не поле значения массива. Есть ли способ заставить это генерировать правильно?