我試圖找出的問題是我們如何設置集合上的限制,我在Google上找到的答案僅適用於具有setPage的目錄($ pageNum,$ pageSize )。這不適用於其他任何收藏。
請參閱下面的答案。Magento:在集合上設置LIMIT
回答
有幾種方法可以做到這一點:
$collection = Mage::getModel('...')
->getCollection()
->setPageSize(20)
->setCurPage(1);
會得到前20條記錄。
這裏是另類,也許更可讀的方式:
$collection = Mage::getModel('...')->getCollection();
$collection->getSelect()->limit(20);
這將調用Zend的Db的限制。您可以將偏移量設置爲第二個參數。
做的方式是在code/core/Mage/Catalog/Model/Resource/Category/Flat/Collection.php
在電線380在Magento 1.7.2看代碼的功能setPage($pageNum, $pageSize)
$collection = Mage::getModel('model')
->getCollection()
->setCurPage(2) // 2nd page
->setPageSize(10); // 10 elements per pages
我希望這會幫助別人。
或只是'$收藏 - > setPage($頁次,$的pageSize);' –
+帕維爾沒有setPage僅適用於目錄,我需要目錄外的像我的問題解釋。 – Shadowbob
指令集極限:
$orderCollection = Mage::getResourceModel('sales/order_collection');
$orderCollection->getSelect()->limit(10);
$orderModel = Mage::getModel('sales/order');
foreach ($orderCollection->getItems() as $order) :
$order = $orderModel->load($order['entity_id']);
echo $order->getId().'<br>';
endforeach;
哇...繼續... –
您的示例正在工作,但永遠不會使用foreach從集合中加載單個實體。這是一個集合用於!所以最好刪除你的foreach中的前兩行......它只會工作,但速度更快,更具可擴展性! –
嗯!在循環查詢 – itsazzad
可以實現,這也: - setPage(1,N);其中,n =任意數字。
$products = Mage::getResourceModel('catalog/product_collection')
->addAttributeToSelect('*')
->addAttributeToSelect(array('name', 'price', 'small_image'))
->addFieldToFilter('visibility', Mage_Catalog_Model_Product_Visibility::VISIBILITY_BOTH) //visible only catalog & searchable product
->addAttributeToFilter('status', 1) // enabled
->setStoreId($storeId)
->setOrder('created_at', 'desc')
->setPage(1, 6);
- 1. 在IValidatableObject上設置ValidationContext的Items集合?
- 2. Magento 2 - 在模型中設置集合限制
- 3. C#設置集合?
- 4. 在使用批量收集時爲LIMIT設置值
- 5. 設置在Magento
- 6. Magento - 如果類別錨設置爲否,則爲空集合
- 7. Magento通用集合
- 8. 過濾magento集合?
- 9. CMS上的Magento分層產品集合
- 10. 在集羣上設置MaxOperationTimeout
- 11. Magento集羣/負載平衡設置
- 12. 設置集合類型swift
- 13. 在argparse中設置互斥集合
- 14. 在JavaScript中設置哈希集合?
- 15. 如何在線設置集合?
- 16. 在jsf中設置集合屬性
- 17. Randomise&limit在主頁上的類別縮略圖magento
- 18. 在混合操作系統上設置Hadoop集羣
- 19. 在NSArray集合中的多個UILabels上設置文本
- 20. DocumentDB使用EnableCrossPartitionQuery在特定集合上搜索設置True?
- 21. 如何在NSManagedObjects集合(NSArray或NSSet)上設置KVO
- 22. 在應用程序或shell中設置mongoDB集合上的ttl?
- 23. 在MongoDB上執行聚合/設置交集
- 24. Magento集合表達式
- 25. Magento分層產品集合
- 26. 如何循環Magento集合?
- 27. Magento:排序產品集合
- 28. magento Bug與資源集合
- 29. 過濾一個Magento集合
- 30. Magento的GET語言集合
限制僅限於Catalog,如果您自己創建模塊,則必須在集合中實現該功能,並且「limit(20)= LIMIT 0,20」而不是「LIMIT 20,20」如何更改頁面?第一個解決方案是我在下面的解決方案。 – Shadowbob
$ collection-> getSelect() - > limit(20,20); // LIMIT 20,20 OR $ collection = Mage :: getModel('...') - > getCollection() - > setPageSize(20) - > setCurPage(2); // LIMIT 20,20 – freento
$ collection-> getSelect() - > limit(20,20);將適用於每一個收藏。請參閱Zend DB Select,Magento向DB查詢的基礎。 – freento