How can I join tables in Zend while using a class that inherits from Zend_Db_Table_Row_Abstract?
Asked Answered
M

1

2

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.

Mi answered 15/7, 2010 at 12:25 Comment(2)
possible duplicate of How to use Join in Zend Framework. and a couple others.Filler
Once you see that answer and know something about Zend you can see the questions are very related but I still think keeping this questions has value because the keywords my questions contains was what I searched for and couldn't find so maybe someone else has the same problem...Mi
F
3

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);

Filler answered 15/7, 2010 at 12:25 Comment(1)
Works perfectly to get Zend_Db_Table to make that join.Mi

© 2022 - 2024 — McMap. All rights reserved.