объединение пользовательских таблиц с помощью команд magento
Я пытался объединить две пользовательские таблицы с помощью команд magento. После поиска я наткнулсяэтот блок универсального кода
$collection = Mage::getModel('module/model_name')->getCollection();
$collection->getSelect()->join( array('table_alias'=>$this->getTable('module/table_name')),
'main_table.foreign_id = table_alias.primary_key',
array('table_alias.*'),
'schema_name_if_different');
Следуя этому шаблону, я попытался объединить свои таблицы, но только возвращал ошибки, такие какincorrect table name
или жеtable doesn't exist
или какая-то другая ошибка.
Просто, чтобы прояснить ситуацию, может кто-нибудь поправить меня, если я понимаю
$collection = Mage::getModel('module/model_name')->getCollection();
Получает экземпляр вашей модели. В этой модели находится таблица, которая содержит необходимые данные (для этого примера я назову таблицу p)
$collection->getSelect()
Выберите данные из таблицы p
->join()
Требуется три параметра для объединения двух таблиц
PARAM1
array('table_alias'=>$this->getTable('module/table_name'))
'псевдоним, который вы даете таблице' => 'таблица, которую вы хотите добавить в коллекцию (это было настроено в папке модели)'
param2
'main_table.foreign_id = table_alias.primary_key'
Этот бит я не получаю (кажется, прямо вперед)
моя главная таблица (p) не имеет внешнего идентификатора (у него есть первичный ключ - это тоже внешний идентификатор)?
должно совпадать с именем alised, которое вы дали в param1
param3
'main_table.foreign_id = table_alias.primary_key'
получить все от имени alised
Где я ошибся в моем понимании?