问题
I have a class that extends Zend_Db_Table lets call it 'Users' that uses the class 'User' (inheriting from Zend_Db_Table_Row_Abstract) as its rowClass. I need it this way because User has additional methods that I use.
As far as I know it is not possible to join tables inside my Users class so I use:
$query = $db->select(); $query->from(...); $query->joinInner(...);
instead of
$this->select(); ...
But then of course the rows I get are not of the User class. So I would like to know how can I force my query to return User objects instead of Row objects.
Another way would be to get Zend_Db_Table to make that join in which case I would also get what I want.
回答1:
Quoting David Caunt's answer in linked duplicate:
Because Zend_Db_Table provides row gateway functions, which don't work if you join on other tables, you have to state that you are willing to give it up. Simply make a call to
setIntegrityCheck
and it will work:
$select->setIntegrityCheck(false);
来源:https://stackoverflow.com/questions/3255466/how-can-i-join-tables-in-zend-while-using-a-class-that-inherits-from-zend-db-tab