2016-08-19 4 views
0

「モデル」という名前の属性が1つあり、タイプがドロップダウンです。属性コードはwheel_modelです。 このドロップダウンには2585のオプションがあります。ドロップダウン属性の値をマゼンタに取り込む際に問題が発生する

私は多くのページでこのドロップダウンを使用して、ユーザーがホイールモデルとフィルタ製品リストを選択できるようにしました。以下は

データベースから値をドロップダウンフェッチするためのコードです:

$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); 
     } 
関連する問題