2013-12-04 4 views
1

Есть ли какой-либо реальный способ сделать кросс-базу данных в заявлении на выбор zf2? Я искал жизнеспособный способ выполнить это, не прибегая к написанию полного заявления sql.Zend Framework 2 кросс-базы данных присоединяется

В настоящее время мой запрос выглядит примерно так:

$selectDB2 = $this->getSelect('db2.tabledb2'); 

$selectDB = $this->getSelect('field1'); 
$selectDB->join(
       ['tabledb2' => $selectDB2], 
       'tabledb1.id = tabledb2.id', 
       [], 
       $select::JOIN_LEFT. ' '. $select::JOIN_OUTER 
      ); 

После исследований я обнаружил, что ZF2 имеет проблемы: https://github.com/zendframework/zf2/issues/4307

Проблема заключается в пути, ZF2 экранировать кавычки, и решение перечислено , Тем не менее, я был идеалом после того, как не пришлось бы менять библиотеку zf2, а также не требовал, чтобы мне пришлось писать один длинный sql-оператор (поскольку это не является жизнеспособным вариантом для области этого запроса).

ответ

1

Решено. Табличный идентификатор ZF2 очень хорошо справляется с этой проблемой. Это решает все очень чисто и эффективно.

$selectDB2 = $this->getSelect(new TableIdentifier('tabledb2', 'db2');