다음과 같은 방법으로 사용자 정의 Magento 컨트롤러에서 지정된 카테고리의 모든 제조업체를 검색합니다. 이 모듈은 ajax 호출에 대한 데이터를 얻기위한 서비스로 만들어집니다.비 상품 페이지의 카테고리에 속한 모든 제품의 제조업체를 찾으십시오.
이렇게 많은 메소드를 만들었고 모두 로컬 서버에서 5 ~ 7 초 범위 내에서 실행됩니다. 로컬 서버에서 실행하려면 14 초이 필요합니다.
당신이 나를 여기 병목 찾는 데 도움이 될 수 :
$manufacturers[$product->getAttributeText('manufacturer')] = $product->getAttributeText('manufacturer');
: 자신의 코드에
$manufacturers=array_flip(array_flip(array_reverse($manufacturers,true)));
:
public function subcategoryAction() {
$storeId = Mage::app()->getStore()->getStoreId();
// Subcategory ID passed with a GET method
$sub = $this->getRequest()->getParam('subcategory');
if ($sub) {
// Querying to get all product ID's in the specified subcategory
$product_ids = Mage::getResourceModel('catalog/product_collection')
->setStoreId($storeId)
->addAttributeToFilter('status', array('eq' => '1'))
->addAttributeToFilter('visibility', 4)
->addCategoryFilter(Mage::getModel('catalog/category')
->load($sub))->getAllIds();
$product = Mage::getModel('catalog/product');
// Load all the product models by their ID's
foreach ($product_ids as $id) {
$product->load($id);
$manufacturers[] = $product->getAttributeText('manufacturer');
}
// Getting unique values of manufacurers, just like array_unique
$manufacturers[$product->getAttributeText('manufacturer')] = $product->getAttributeText('manufacturer');
// Echoing default option value
echo "<option value='all'>BRAND/MAKE</option>";
// Echoing and formatting manufacturers for a dropdown
foreach ($manufacturers as $manufacturer) {
if ($manufacturer != "") {
echo "<option value='" . $manufacturer . "'>" . $manufacturer . "</option>";
}
}
}
}
허용 @Mischa LEISS 제안을이 지저분한 고유 값 코드를 변경
해결책
이,
$products = Mage::getResourceModel('catalog/product_collection')
->setStoreId($storeId)
->addAttributeToSelect('manufacturer')
->addAttributeToFilter('status', array('eq' => '1'))
->addAttributeToFilter('visibility', 4)
->addCategoryFilter(Mage::getModel('catalog/category')
->load($sub));
은 약 2 초 정도 @Mischa
모든 덕분에 가장 빠른 솔루션입니다.
감사합니다 ...하지만 가장 빠른 해결책은 100 %입니다. –
@Mischa 최대한 빨리 게시하겠습니다. – l0lander