Как отлаживать NotORM
Кто-нибудь знает способ отладки запросов NotORM?
Я могу получить SQL-запрос, который он выполняет, распечатав объект NotORM.
Пример:
$models = $this->dbh->wh_product()->select("wh_model.id, wh_model.manufacturer, wh_model.model, wh_model.details, wh_model.wh_category.category, crm_contact.ragione")->order("wh_model.wh_category.id ASC, crm_contact.ragione ASC, wh_model.model ASC");
printf($models);
Это дает:
SELECT
wh_model.id,
wh_model.manufacturer,
wh_model.model,
wh_model.details,
wh_category.category,
crm_contact.ragione
FROM
wh_product
LEFT JOIN wh_model ON wh_product.wh_model_id = wh_model.id
LEFT JOIN wh_category ON wh_model.wh_category_id = wh_category.id
LEFT JOIN crm_contact ON wh_product.crm_contact_id = crm_contact.id
ORDER BY
wh_category.id ASC,
crm_contact.ragione ASC,
wh_model.model ASC
У меня проблемы с этим запросом, потому что, если я выполняю его вручную через phpMyAdmin, я получаю примерно 90 результатов, но NotORM дает мне только 14.
Есть ли способ понять, что происходит с NotORM?
Спасибо
1 ответ
Я столкнулся с проблемой итератора iterator_to_array с набором результатов. В моем случае я просматривал набор результатов с
print_r(iterator_to_array($notormresult));
и приказ был проигнорирован.
Я заметил это, когда я фактически повторил и напечатал набор результатов:
$newresult = array();
foreach($notormresult as $r){$newresult[]=iterator_to_array($r);}
print_r($newresult);
Не уверен, что это ваша проблема, поскольку вы получаете несоответствие счета.