У меня есть класс, который расширяет Zend_Db_Table, позволяет называть его «Пользователи», который использует класс «Пользователь» (наследующий от Zend_Db_Table_Row_Abstract) как свой rowClass. Мне это нужно, потому что у пользователя есть дополнительные методы, которые я использую.
Насколько я знаю, невозможно объединить таблицы внутри класса «Мои пользователи», поэтому я использую:
$ query = $ db-> select (); $ Query-> от (…); $ Query-> joinInner (…);
вместо
$ This-> выберите (); …
Но тогда, конечно, строки, которые я получаю, не относятся к классу User. Поэтому я хотел бы знать, как заставить свой запрос возвращать объекты User вместо объектов Row.
Другой способ – заставить Zend_Db_Table сделать это соединение, и в этом случае я также получу то, что хочу.
Цитируя ответ Дэвида Каунта в связанном дубликате:
Поскольку Zend_Db_Table предоставляет функции шлюза строки, которые не работают, если вы присоединяетесь к другим таблицам, вы должны указать, что вы готовы отказаться от него. Просто позвоните в
setIntegrityCheck
и он будет работать:
$select->setIntegrityCheck(false);