2012-03-22 2 views
10

Mage :: getModel( 'カタログ/カテゴリ') - > load($ id)が機能していませんロードされ、getId()は空です)。

が、私はこれを行う場合:それが動作

 $collection = Mage::getModel('catalog/category')->getCollection(); 
    foreach($collection as $category) { 
     if($category->getId() == $id) { 
      echo "it has been founnnd!!!"; 

     } 
    } 

を?

私はこのコードをclpを通してphpunitテストで実行していることを言及する必要があります。そのため、ブートストラップされています。スコープに問題があると私は推測していますか?

答えて

15

私の問題はあなたの単体テストや他の場所でなければならないと思います。私のために完全に罰金

Mage::getModel('catalog/category') 
    ->setStoreId($store_id) 
    ->load($id); 

作品、私はPHPのapacheapache2handlercgicgi-fcgiまたはcli SAPIと私が試したMagentoのバージョン(CE 1.3、1.5、1.6およびEE 1.11)に関係なく使用するかどうかに関係なく。

+0

それがなくても動作します「 - > setStoreId($ STORE_ID)」 – Pascut

2

フラットカテゴリテーブルが使用され、インデックスが最新でないことがあります。 alanの嵐のこのarticleを参照してください。

3

私が気づいた何を(はい、3年後)ということである:

1)あなたが有効カテゴリフラットテーブルを持っているとインデックスが最新でない場合、カテゴリーはロードされません

2)カテゴリーではないでしょう負荷それが「デフォルトのカテゴリ」

2

にない場合、私はそれは間違いなく動作することを願って、

$categoryId = 3; 
$category = Mage::getModel('catalog/category') 
       ->setStoreId(Mage::app()->getStore()->getId()) 
       ->load($categoryId); 
関連する問題