Ik begin het Zend Framework waar Magento op draait redelijk te snappen, alleen soms komt het nog wel eens voor dat ik iets wil doen waarvan ik het weet dat het kan, maar ik er maar gewoon niet uit kom. Het probleem is alsvolgd:
Ik heb een SQL query binnen Magento gedaan middels het Zend Framework. Deze werkt perfect, ik krijg de juiste collection terug, en mijn JOIN die ik gedaan heb met een andere tabel is ook prima gegaan. Nu wil ik echter de data uit de gejoinde tabel ook meegeven aan mijn select, en daar gaat het fout. Deze query geeft namelijk alleen de data uit de eerste tabel mee met de select, en niet die van de tweede tabel. Ik heb de hele middag gegoogled en geprobeerd, maar ik ben nog niet tot de juiste oplossing gekomen.
Ik heb geprobeerd doormiddel van een array meerdere selects mee te geven, maar dat werkte ook niet zoals ik verwacht had. Wat doe ik verkeerd?
Zoals te zien is word er een join gedaan met de tabel: catalog_product_flat_'.$storeId.' oftewel: catalog_product_flat_4. Dit gaat prima, ik had al gezien dat de join goed werkt. Nu moet hij de data dus ook nog selecten. In een MySQL query is dit makkelijk gepiept, echter in Zend Framework is het mij even te moeilijk momenteel...
Is hier wellicht iemand die mij een zetje in de goede richting wil geven?
Ik heb een SQL query binnen Magento gedaan middels het Zend Framework. Deze werkt perfect, ik krijg de juiste collection terug, en mijn JOIN die ik gedaan heb met een andere tabel is ook prima gegaan. Nu wil ik echter de data uit de gejoinde tabel ook meegeven aan mijn select, en daar gaat het fout. Deze query geeft namelijk alleen de data uit de eerste tabel mee met de select, en niet die van de tweede tabel. Ik heb de hele middag gegoogled en geprobeerd, maar ik ben nog niet tot de juiste oplossing gekomen.
Ik heb geprobeerd doormiddel van een array meerdere selects mee te geven, maar dat werkte ook niet zoals ik verwacht had. Wat doe ik verkeerd?
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
| public function getProductsByManufacturer($manufacturerId, $storeId) { $resource = Mage::getResourceModel('catalogindex/attribute'); $select = $resource->getReadConnection()->select(); $select->from(''.$resource->getMainTable().'', 'entity_id') //Dit is de select waar het om draait. Hier select hij alles van de maintable, dit gaat goed. Maar hoe ik hier een extra select uit een andere tabel aan mee geef ik mij niet duidelijk. ->distinct(true) //Model toevoegen aan de product collectie. ->join( array('catalog_product_flat_'.$storeId.'' => 'catalog_product_flat_'.$storeId.''), ''.$resource->getMainTable().'.entity_id = catalog_product_flat_'.$storeId.'.entity_id' //array('store_id') ) ->where('store_id = ?', $storeId) ->where('attribute_id = ?', Mage::helper('aitmanufacturers')->getAttributeId()) ->where('value = ?', $manufacturerId); return $resource->getReadConnection()->fetchCol($select); } |
Zoals te zien is word er een join gedaan met de tabel: catalog_product_flat_'.$storeId.' oftewel: catalog_product_flat_4. Dit gaat prima, ik had al gezien dat de join goed werkt. Nu moet hij de data dus ook nog selecten. In een MySQL query is dit makkelijk gepiept, echter in Zend Framework is het mij even te moeilijk momenteel...
Is hier wellicht iemand die mij een zetje in de goede richting wil geven?
[ Voor 7% gewijzigd door DAMAGE op 20-10-2011 21:34 ]
Lian Li O11 Dynamic EVO | Corsair HX1500i | Intel i9 13900K | ASUS Maximus HERO Z790 | 32GB GSkill Trident Z5 7200 DDR5 | Samsung 980 Pro 2TB | RTX 4080 | Simucube 2 Pro wheel