Supposons que j'ai un simple modèle A qui cible la table A maintenant, je dois ajouter des informations supplémentaires, donc je décide de créer un modèle B et d'enregistrer ces informations supplémentaires dans un tableau B avec une clé étrangère pointant vers la clé d'index du tableau A.
Habituellement, les jointures sont effectuées dans des collections, mais si je charge un modèle, la collection n'est pas appelée, mais seule la resource model
est utilisée.
Comment puis - je modifier le modèle A pour charger également des données de tableau B sur load()
?
Réponses:
La classe de modèle de ressource interne ajoute la fonction suivante
Lorsque vous avez appelé
Mage::getModel('modulename/TableA')->load(1)
, cette méthode se joint à table_b.la source
limit(1)
n'est pas obligatoire:joinLeft()
sera suffisant ...Je peux vous proposer l'approche que j'utilise, et c'est assez simple.
Pas:
Réécrire le modèle de ressource du modèle A (si le modèle A est le vôtre et non Magento, vous pouvez ignorer cette étape)
Réécrire la méthode _getLoadSelect () du modèle de ressource du modèle A. La requête de sélection est générée dans cette méthode et ici vous pouvez joindre vos autres tables.
la source