Supongamos que tengo un Modelo A simple que apunta a la tabla A ahora que tengo que agregar información adicional, así que decido crear un Modelo B y guardar esa información adicional en una Tabla B con una clave externa que apunta a la clave de índice de la Tabla A.
Por lo general, las uniones se realizan en colecciones, pero si cargo un modelo, no se llama a la colección, sino que solo resource model
se usa.
¿Cómo puedo modificar el modelo A para cargar también los datos de la Tabla B en load()
?
Respuestas:
Dentro de la clase de modelo de recurso agregue la siguiente función
Cuando llamó
Mage::getModel('modulename/TableA')->load(1)
, este método se unirá con table_b.fuente
limit(1)
no es obligatorio:joinLeft()
será suficiente ...Puedo proponerle el enfoque que uso, y es bastante fácil.
Pasos:
Reescribe el modelo de recurso del Modelo A (si el Modelo A es tu modelo y no Magento, entonces puedes omitir este paso)
Reescriba el método _getLoadSelect () del modelo de recurso del Modelo A. La consulta de selección se genera en este método y aquí puede unir sus otras tablas.
fuente