Я пытался присоединиться к двум пользовательским таблицам, используя команды 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()
Требуется три параметра для объединения двух таблиц вместе
ПАРАМЕТРЫ1
array('table_alias'=>$this->getTable('module/table_name'))
'ализованное имя, которое вы даете таблице' => 'таблица, которую вы хотите добавить в коллекцию (это было настроено в папке модели)'
ПАРАМ2
'main_table.foreign_id = table_alias.primary_key'
Этот бит я не понимаю (хотя это кажется прямолинейным)
моя основная таблица (p) не имеет внешнего идентификатора (у нее есть первичный ключ - это также его внешний идентификатор)?
должно быть равно псевдониму, который вы указали в param1
ПАРАМЕТРЫ3
'main_table.foreign_id = table_alias.primary_key'
получить все от имени alised
Где я ошибся в своем понимании?