magento à l'aide de rejoindre en grid.php prepareCollection
Quelqu'un peut me dire comment faire une jointure dans magento
Voici le problème:
<?//kleurtjes
$collection= Mage::getModel('faq/faq')->getCollection();
$collection->getSelect()->join(array('faqcat' => $this->getTable('faqcat/faqcat')), 'faqcat.faqcat_id=faq.faqcat_id' , array('faqcat.*'));
?>
je suis en train de faire une jointure avec la table faqcat où je utiliser la clé faqcat_id .
plus loin, je veux que faqcat.nom + faq.faq_id sont sélectionnés cos ce sont ces valeurs que je veux utiliser dans les colonnes à afficher.
<?
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',
));
}
?>
après avoir essayé de 1000 combinaisons de je ne sais plus quoi faire ... qui est prêt à m'aider
c'est la fonction complète:
<?
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();
}
?>
juste pour être clair, c'est le sql je veux avoir , mais alors le magento façon
<?//kleurtjes
SELECT faq.faq_id as id, faqcat_name as name
FROM faq
JOIN faqcat
USING ('faqcat_id')
?>
OriginalL'auteur Paulo | 2010-06-08
Vous devez vous connecter pour publier un commentaire.
Essayez ceci:
Vous pouvez voir le sql qui va être exécuté pour extraire la collection par:
La Varien_Db_Select classe est basée sur Zend_Db_Select, de sorte que le Zend documentation est une bonne référence.
à l'aide de "__toString()" semble un peu plus solide, bien typecatsing de chaîne fonctionne en effet de la même
Vous pourriez tout aussi bien utiliser "echo $collection->getSelect()"
OriginalL'auteur Jordan Brown
je viens de commencer le développement de magento extension (aimer) et c'est la 2ème partie où je dois afficher une grille à partir de deux tables. (ouf).
mais ce n'est pas facile de surf beaucoup sur internet que j'ai réalisé le mien résultat en faisant cela.
/* la mine était de montrer ce */
/SÉLECTIONNEZ
main_table
.,lk
.cat_title
,lk
.cat_id
DElinkdirectory
COMMEmain_table
INNER JOINlinkcategory
COMMElk
SUR lc.cat_id = main_table.cat_id*//* pour imprimer la requête en cours */
$collection->printlogquery(true);exit;
OriginalL'auteur R T