магнитное использование участвует в grid.php prepareCollection

Может кто-то говорить мне, как сделать соединение в магнето

Вот проблема:

<?//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')
?>
5
задан Alan Storm 4 October 2011 в 23:25
поделиться

1 ответ

Попробуйте следующее:

$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 является хорошей ссылкой .

5
ответ дан 13 December 2019 в 22:02
поделиться
Другие вопросы по тегам:

Похожие вопросы: