2010-07-15 5 views
2

J'ai une classe qui s'étend Zend_Db_Table nous l'appelons 'Users' qui utilise la classe 'User' (héritant de Zend_Db_Table_Row_Abstract) comme rowClass. Je l'ai besoin de cette façon parce que l'utilisateur a des méthodes supplémentaires que j'utilise.Comment puis-je joindre des tables dans Zend en utilisant une classe qui hérite de Zend_Db_Table_Row_Abstract?

Pour autant que je sais que ce n'est pas possible de joindre des tables dans ma classe Utilisateurs donc j'utilise:

$ query = $ db-> select(); $ query-> from (...); $ query-> joinInner (...);

au lieu de

$ this-> select(); ...

Mais bien sûr, les lignes que j'obtiens ne sont pas de la classe User. Donc, je voudrais savoir comment puis-je forcer ma requête à retourner des objets Utilisateur à la place des objets Row.

Une autre façon serait d'obtenir Zend_Db_Table pour faire cette jointure dans quel cas j'obtiendrais aussi ce que je veux.

+0

double possible de [. Comment utiliser Inscrivez-vous Zend Framework] (http://stackoverflow.com/questions/2311481/how-to -use-join-in-zend-framework) et quelques autres. – Gordon

+0

Une fois que vous voyez cette réponse et savez quelque chose sur Zend vous pouvez voir les questions sont très liées, mais je pense toujours que garder ces questions a de la valeur parce que les mots clés que mes questions contiennent sont ce que j'ai cherché. même problème ... –

Répondre

3

Citant la réponse de David Caunt en double exemplaire lié:

Parce que Zend_Db_Table fournit des fonctions de passerelle de ligne, qui ne fonctionnent pas si vous vous joignez à d'autres tables, vous devez déclarer que vous êtes prêt à y renoncer. Il suffit de faire un appel à setIntegrityCheck et il fonctionnera:

$select->setIntegrityCheck(false);

+1

Fonctionne parfaitement pour obtenir Zend_Db_Table pour faire cette jointure. –

Questions connexes