2016-08-19 74 views
0

有一個屬性名稱爲「Model」,其類型爲下拉式。屬性代碼是wheel_model。 該下拉菜單有2585個選項。在獲取magento中的下拉屬性值時加載問題

我已經在很多頁面上使用了這個下拉菜單,允許用戶選擇輪模型和過濾器產品列表。

下面來從數據庫下拉值的代碼:

$arrval = array(); 
$attribute = Mage::getModel('eav/config')->getAttribute('catalog_product', 'wheel_model'); 
foreach ($attribute->getSource()->getAllOptions(false) as $option) { 
     $arrval[$option['value']] = $option['label']; 
} 

我讓所有的陣列下拉值,我使用它在PHTML如下:

<select name='wheel_model'> 
    <option>Select Model</option> 
    <?php 
    foreach ($arrval as $value => $label) { 
     echo "<option value='" . $value . "'>" . $label . "<option>"; 
    } 
    ?> 
</select> 

其花費太多時間來加載下拉值。有什麼方法可以將此下拉列表存儲在緩存中並在需要時從緩存中檢索?

回答

0

使用下面的代碼將數據存儲在緩存中,這就是全部。

$cacheId = 'my_cache_id'; 
     if (false !== ($data = Mage::app()->getCache()->load($cacheId))) { 
      $data = unserialize($data); 
     } else { 
      $attribute = Mage::getModel('eav/config')->getAttribute('catalog_product', 'wheel_model'); 
      foreach ($attribute->getSource()->getAllOptions(false) as $option) { 
       $data[$option['value']] = $option['label']; 
      } 
      Mage::app()->getCache()->save(serialize($data), $cacheId); 
     }