Angenommen, ich habe ein einfaches Modell A , das auf Tabelle A abzielt. Jetzt muss ich einige zusätzliche Informationen hinzufügen, damit ich ein Modell B erstellen und diese zusätzlichen Informationen in einer Tabelle B speichern kann, wobei ein Fremdschlüssel auf den Indexschlüssel von Tabelle A zeigt .
Normalerweise werden Verknüpfungen in Sammlungen durchgeführt, aber wenn ich ein Modell lade, wird die Sammlung nicht aufgerufen, sondern nur die resource model
.
Wie kann ich ändern Modell A auch Daten aus laden Tabelle B auf load()
?
Antworten:
Fügen Sie innerhalb der Ressourcenmodellklasse die folgende Funktion hinzu
Wenn Sie aufgerufen haben
Mage::getModel('modulename/TableA')->load(1)
, wird diese Methode mit table_b verknüpft.quelle
limit(1)
ist nicht erforderlich:joinLeft()
wird genug sein ...Ich kann Ihnen den Ansatz vorschlagen, den ich verwende, und es ist ganz einfach.
Schritte:
Ressourcenmodell von Modell A neu schreiben (Wenn Modell A Ihr Modell und nicht Magento ist, können Sie diesen Schritt überspringen.)
Schreiben Sie die Methode _getLoadSelect () des Ressourcenmodells von Modell A neu. In dieser Methode wird eine Auswahlabfrage generiert, und hier können Sie die anderen Tabellen verknüpfen.
quelle