xPDO: все поля присоединённых таблиц типизирует как строковые

May 2, 2015

Пример запроса:

$query = $modx->newQuery('modResource');
$query->select(array('modResource.id AS resourceId'));
$query->innerJoin('modTemplateVarTemplate', 'TVValues', array('TVValues.contentid = modResource.id'));
$query->where(array('TVValues.tmplvarid:=' => 8));

Получаем SQL со строкой '8', а не числом 8:

SELECT modResource.id AS resourceId
FROM `modx_site_content` AS `modResource`
JOIN `modx_site_tmplvar_templates` `TVValues` ON TVValues.contentid = modResource.id
WHERE `TVValues`.`tmplvarid` = '8'

Проверил разные варианты. Вывод такой: xPDO не получает мета-информацию о присоединённых таблицах (хотя парсит их отлично). Поэтому, все поля этих таблиц он приводит к строковому типу.

Как заставить xPDOQuery получать информацию о типах данных присоединяемых таблиц?