воскресенье, 7 октября 2012 г.

Zend Framework: Select query cannot join with another table

Недавно столкнулся с ошибкой "Select query cannot join with another table" при работе с Zend Framework. Текст ошибки сначала просто поставил меня в ступор, поскольку дословно он означает что-то вроде того, что запросы select не могут объединять другие таблицы :) Разумеется это совсем не так и дело оказалось совсем в другом.

Дело в том, что оказывается, в Zend Framework нельзя указывать поля из объединенной таблицы для получения их значений в возвращенной строке.

Например, следующий запрос в Zend Framework не пройдет

$select=$myTable1->select()
->from(array('ft1'=>$myTable1->info('name')),array('ff1'=>'foo'))
->joinLeft(array('ft2'=>$myTable2->info('name')),'ft1.id=ft2.id',array('ff2'=>'foo'));

$rows=$myTable1->fetchAll($select);


Но оказывается можно отключить эту проверку такsetIntegrityCheck(false)


Таким образом, наш предыдущий запрос будет выглядеть так

$select=$myTable1->select()
->setIntegrityCheck(false)
->from(array('ft1'=>$myTable1->info('name')),array('ff1'=>'foo'))
->joinLeft(array('ft2'=>$myTable2->info('name')),'ft1.id=ft2.id',array('ff2'=>'foo'));

$rows=$myTable1->fetchAll($select);

Отблагодарить можно через форму справа "Donate" ... )

To reward you via the form on the right "Donate" ... )

:)

Комментариев нет :

Отправить комментарий

друзья )

Сохраняйте и делитесь желаниями, и не забывайте о важных датах! парсинг центр