Может кто-то говорить мне, как сделать соединение в магнето
Вот проблема:
<?//kleurtjes
$collection= Mage::getModel('faq/faq')->getCollection();
$collection->getSelect()->join(array('faqcat' => $this->getTable('faqcat/faqcat')), 'faqcat.faqcat_id=faq.faqcat_id' , array('faqcat.*'));
?>
я пытаюсь сделать соединение с таблицей faqcat, где я использую ключ faqcat_id.
далее я хочу это faqcat.name +, часто задаваемые вопросы faq_id выбираются, потому что это значения, которые я хочу использовать в colums.
<?
protected function _prepareColumns()
{
$this->addColumn('faq_id', array(
'header' => Mage::helper('faq')->__('ID'),
'align' =>'right',
'width' => '50px',
'index' => 'faq_id',
));
$this->addColumn('name', array(
'header' => Mage::helper('faqcat')->__('Titel'),
'align' =>'left',
'index' => 'name',
));
}
?>
после попытки 1 000 комбинаций я не знаю, что сделать больше..., кто готов помочь мне
это - полная функция:
<?
protected function _prepareCollection()
{
$collection= Mage::getModel('faq/faq')->getCollection();
//$collection->getSelect()->join(array('faqcat' => $this->getTable('faqcat/faqcat')), 'faqcat.faqcat_id=faq.faqcat_id' , array('faqcat.*'));
$id = Mage::getModel('customer/session')->getCustomer()->getId();
$this->setCollection($collection);
// }
return parent::_prepareCollection();
}
?>
только, чтобы быть ясным это - sql, который я хочу иметь, но затем магнитный путь
<?//kleurtjes
SELECT faq.faq_id as id, faqcat_name as name
FROM faq
JOIN faqcat
USING ('faqcat_id')
?>
Попробуйте следующее:
$collection->getSelect()
->join($this->getTable('faqcat/faqcat'), "faqcat.faqcat_id = main_table.faqcat_id", array(faqcat.*));
Вы можете увидеть sql, который на самом деле будет запущен для выборки коллекции:
Mage::log($collection->getSelect()->__toString());
Класс Varien_Db_Select основан на Zend_Db_Select, поэтому документация Zend является хорошей ссылкой .