Коллекция Magento объединяет разные модули - PullRequest
4 голосов
/ 02 сентября 2010

Я работал над пользовательским модулем, который имеет бэкэнд для администратора.До сих пор он работал отлично, как и клиентские модули, но теперь я застрял с этим.Моя пользовательская таблица сохраняет идентификатор клиента, и я могу отображать имя клиента в каждой строке таблицы.Пока я могу показать удостоверение личности, я знаю, что должен подготовить коллекцию, но у меня нет подсказки.Если я использую join, он работает только для моделей одного и того же модуля.Я пробовал это:

$collection = Mage::getModel('mymodule/mymodel')->getCollection()->getSelect()
    ->join(
        'customer_entity',
        'main_table.customer_id = customer_entity.entity_id', array('customer_name' => 'email'));

Если я распечатаю запрос выглядит следующим образом

SELECT `main_table`.*, `customer_entity`.`email` AS `customer_name` FROM 
`uhma_comunidad_question` AS `main_table` INNER JOIN `customer_entity` ON 
main_table.customer_id = customer_entity.entity_id

, но ничего не возвращает, коллекция пуста, если я скопирую этот sql и вставлю егов phpmyadmin он отлично работает, чего мне не хватает здесь

Спасибо за помощь.

Ответы [ 2 ]

9 голосов
/ 02 сентября 2010

просто, если вы используете цепочку для getSelect (), она не работает, просто добавьте еще одну строку

$collection = Mage::getModel('mymodule/mymodel')->getCollection();
$collection->getSelect()
    ->join(
    'customer_entity',
    'main_table.customer_id = customer_entity.entity_id', array('customer_name' => 'email'));

, она отлично работает

1 голос
/ 08 октября 2013
$collection = Mage::getModel('mymodule/mymodel')->getCollection()->getSelect()
->join(
    'customer_entity',
    'main_table.customer_id = customer_entity.entity_id', array('customer_name' => 'email'));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...