2010-08-20 3 views
1

Mage :: getResourceModel을 사용하여 magent에서 자원 모델을 가져올 때 필터를 아무 문제없이 추가 할 수 있지만 어떻게 결과 집합을 5 또는 10으로 제한 할 수 있습니까? 예를 들어Magento 자원 모델 필터 및 한계

+1

귀하의 질문이 100 % 명확하지 않습니다. 귀하는 "자원 모델을 얻는 중"이라고하지만, 귀하의 질문은 사용자가 콜렉션을 얻고 있음을 의미합니다 (혼란스럽게, 자원 모델 유형). 사용하고있는 코드를 포함 시키면 항상 좋은 생각입니다. 특히 Magento 질문에 특히 좋습니다. –

답변

3
$select->limit(5) 

체크 app/core/mage/Catalog/Model/Resource/Eav/Mysql4/Url.php (라인 806)

+0

mage :: getResourceModel과 함께 사용할 때 작동하지 않는다 – David

7

에서 _getProducts() 방법이 젠토 컬렉션에 대해 얘기하고 가정은 ORM이 일을 제한하는 페이징 스타일의 인터페이스를 사용합니다. 각 페이지의 크기를 얼마나 크게할지 (setPageSize), 어느 페이지에 올 것인지 (setCurPage) 알려줍니다.

//same as, and "better" than Mage:getResourceModel('catalog/product_collection'); 
Mage::getModel('catalog/product') 
->getCollection() 
->setPageSize(10)->setCurPage(1);  //first 10 items 


Mage::getModel('catalog/product') 
->getCollection() 
->setPageSize(10)->setCurPage(2);  //second 10 items 

///etc... 
+0

이 컬렉션에 조인을 추가하는 방법은 무엇입니까? getCollection 뒤에 -> join을 추가하려고하면 Magento는 정의되지 않은 메서드라고 짖는다. – Corgalore

+0

@Corgaloe 컬렉션 객체에는 조인 메소드가 없으며 Magento의 컬렉션 API에는 조인이 내장되어 있지 않습니다 (EAV 컬렉션 유형은 제외하지만 자동으로 EAV에 조인/쿼리). 콜렉션의 select 명령을 수정해야합니다. 시도하십시오 -> getCollection() -> getSelect() -> join .... - select 객체가 Zend 1.x select 객체인데 –

+0

당신이 제안한 join이 작동하지만 페이징은 결과 SQL 문. 컬렉션을 가져온 다음 joinField를 사용하여 getSelect() -> limitPage (1,10)를 사용하여 조인 된 테이블과 페이징 모두를 사용하여 제품 컬렉션을 가져와야합니다. – Corgalore