CodeIgniter DataMapper - поле where_join_, генерирующее неправильный запрос

Моя программа использует ORM WanWizard DataMapper с CodeIgniter и должна выполнить простой запрос на основе поля в объединяемой таблице. Вот мой код:

$d = new Deal();

$deals = $d
    ->where_join_field('networks', 'status', 'active')
    ->get();

Как видите, довольно просто. Соотношение "многие ко многим" между "сделками" и "сетями" с полем "статус" в таблице соединений. Тем не менее, это запрос, который он генерирует:

SELECT * FROM (`deal`) WHERE `deal_network`.`status` = 'active'

Очевидно, это не работает вообще, потому что там нет JOIN на месте, чтобы представить deal_network Таблица. Я пытался с помощью include_related, но это псевдоним deal_network стол как networks_deal_network, в результате чего неверная ссылка на таблицу. Как я могу получить DataMapper JOIN эта таблица в запросе правильно?

1 ответ

Решение

Похоже, что это ошибка имени таблицы в _join_field в libraries/datamapper.php, Я разветвился и отправил пулл-запрос с исправлением.

https://bitbucket.org/jonahbron/datamapper

Другие вопросы по тегам