Pytania otagowane jako collection

Pytania dotyczące kolekcji Magento

6
Różnica między getSize () a count () w kolekcji
Wiele razy słyszałem, że oba są takie same. Ale mam do czynienia z dziwnym problemem: w kolekcji produktów modułu CatalogSearch count () zwraca poprawną liczbę produktów, a getSize () zwraca zero. Zasadniczo oto, co otrzymuję: $collection->count(); //correct count $collection->getSize(); //0 Ale chcę, aby getSize () miał poprawną liczbę, ponieważ decyduje, …


3
Najbardziej efektywny sposób na uzyskanie wszystkich identyfikatorów z kolekcji
W przeszłości, aby uzyskać wszystkie identyfikatory kolekcji produktów, zawsze używałem getAllIdstej kolekcji, wierząc, że była to metoda, która uniemożliwiła pełne załadowanie kolekcji danymi itp. Ale faktycznie spojrzałem dzisiaj na tę metodę, która ładuje kolekcję i iteruje każdy element, aby uzyskać tablicę identyfikacyjną. public function getAllIds() { $ids = array(); foreach …
37 collection 

1
Informacje o modelu kolekcji i modelu zasobów
Jestem trochę zdezorientowany w kwestii korzystania z modelu zasobów i modelu kolekcji. Czasami, gdy widzę przykłady ładowania produktów przy użyciu określonych atrybutów, w niektórych przykładach używają modelu kolekcji, a czasem używają modelu zasobów. Także wtedy, gdy mogę użyć konkretnej metody get...i set...wraz z nazwą tabeli wiersz? Jak getName, getId. Próbowałem …

2
Po lewej dołącz do tabeli w zapytaniu dotyczącym kolekcji
Wykonuję następujące czynności, aby uzyskać niektóre zamówienia z systemu na eksport: $orders = Mage::getModel('sales/order')->getCollection() ->addFieldToFilter('status', $statusToExport) ->addFieldToFilter('store_id', $this->processingStoreId) ->addFieldToFilter('updated_at', array('gteq' => date('Y-m-d H:i:s', $lastSyncTime))); Muszę dodać coś, co nie eksportuje, jeśli zamówienie entity_idznajduje się w niestandardowej tabeli, którą mam. Gdybym korzystał z SQL, zrobiłbym: left join myTable as mt on …



2
Czy można iterować natywnie po kolekcjach Magento z paginacją?
Rozumiem przez to - czy istnieje sposób na: $collection = $model->getCollection(); foreach ($collection as $item) { $item->doStuff(); } W taki sposób, że nawet jeśli kolekcja ma 100 tys. Wierszy, ładuje tylko stronę wierszy naraz z MySQL i magicznie dzieli je na strony za kulisami. Patrząc na Varien_Data_Collection_Db::load()to nie wydaje się …

5
Problem z użyciem „posiadania” w kolekcji Magento
Próbuję zbudować niestandardową kolekcję dla siatki w module administracyjnym Magento. Utworzyłem nową metodę kolekcji o nazwie „addAttributeHaving”, która wykonuje następujące czynności: public function addAttributeHaving($value) { $this->getSelect()->having($value); return $this; } Zobacz kod kolekcji: $collection->addFieldToSelect( array( 'entity_id', 'created_at', 'increment_id', 'customer_email', 'customer_firstname', 'customer_lastname', 'grand_total', 'status' ) ); $collection->getSelect()->joinLeft(array('sfop' => 'sales_flat_order_payment'), 'main_table.entity_id = sfop.parent_id', …

2
addFilter vs addFieldToFilter
Kolekcja Magento ma dwie metody filtrowania: 1. Varien_Data_Collection_Db::addFieldToFilter 2. Varien_Data_Collection::addFilter Wydaje się, że obie metody dodają warunek Zend_Db_Select. A jakie korzyści addFilterprzynosi? Kiedy powinienem go użyć zamiast addFieldToFilter?

2
Jak uzyskać atrybut „etykieta opcji / tekst atrybutu” mający „wartość atrybutu” (identyfikator_opcji)?
Załóżmy, że mam atrybut, który jest zbiorem opcji (rozwijane / wielokrotnego wyboru). Mogę pobrać wartość atrybutu dla danego produktu: $store_id = [something]; $productId = [something]; // this is a select/multiselect $attribute_code = [something]; $option_id = Mage::getResourceModel('catalog/product')->getAttributeRawValue($productId, $attribute_code, $store_id ); $option_label = ??? Teraz mam atrybut option_id, który jest wartością liczbową …

7
Uzyskaj kolekcję produktów z identyfikatora kategorii
Próbuję uzyskać kolekcję produktów z identyfikatora kategorii. Kilka rzeczy, które próbowałem, są w bloku: $category = Mage::getModel('catalog/category')->load(123) ->getProductCollection(); i $category = Mage::getModel('catalog/category')->load(123); $products = $category->getProductCollection()->addCategoryFilter($category) ->addAttributeToFilter('type_id', 'simple') ->addAttributeToSelect('*'); także próbowałem zrobić to z phtml $oCatId = Mage::getModel('catalog/category')->load(769); $products->addCategoryFilter($oCatId); Nic z tego nie działa, ale nie widzę też żadnych błędów. Widziałem …


3
Filtrowanie wyników za pomocą LIKE
Rozważ te trzy ciągi „stogu siana”: za) foo bar b) welcome to foo bar industries do) foo barer A teraz moja „igła”: foo bar (Heh) Chciałbym, aby mój filtr pasował do mojej igły z ciągami stogu siana a & b, ale nie c. Próbowałem: $collection->addAttributeToFilter('name', array('like' => '%'.$needle.'%')); Ale powyższe …

4
Dodaj kolumnę do siatki (obserwatora) - kolumna „store_id”, w której klauzula jest niejednoznaczna
Dodaję kolumnę do siatki zamówień przy użyciu podejścia obserwatora: Na wydarzeniu -> sales_order_grid_collection_load_beforedodaję złączenie do kolekcji Na zdarzenie -> core_block_abstract_prepare_layout_beforedodaję kolumnę do siatki EDYTUJ Więcej informacji: W przypadku zdarzenia (1): public function salesOrderGridCollectionLoadBefore($observer) { $collection = $observer->getOrderGridCollection(); $collection->addFilterToMap('store_id', 'main_table.store_id'); $select = $collection->getSelect(); $select->joinLeft(array('oe' => $collection->getTable('sales/order')), 'oe.entity_id=main_table.entity_id', array('oe.customer_group_id')); } W przypadku …

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.