Предположим, у меня есть простая Модель A , предназначенная для таблицы A, теперь мне нужно добавить дополнительную информацию, поэтому я решил создать Модель B и сохранить эту дополнительную информацию в Таблице B с внешним ключом, указывающим на ключ индекса таблицы A.
Обычно объединения выполняются в коллекциях, но если я загружаю модель, коллекция не вызывается, а resource model
используется только.
Как я могу изменить модель A для загрузки также данные из таблицы B на load()
?
Ответы:
Внутри класса модели ресурсов добавьте следующую функцию
Когда вы
Mage::getModel('modulename/TableA')->load(1)
вызываете, этот метод присоединится к table_b.источник
limit(1)
не обязательно:joinLeft()
хватит ...Я могу предложить вам подход, который я использую, и это довольно легко.
шаги:
Перепишите модель ресурсов модели A (если модель A является вашей моделью, а не Magento, то вы можете пропустить этот шаг)
Перепишите метод _getLoadSelect () модели ресурсов модели А. В этом методе создается запрос выбора, и здесь вы можете присоединиться к другим таблицам.
источник