1

ヘルパーのように、製品が属するすべてのカテゴリ ID を取得しています。

$productCategories = $this->getProduct()->getCategoryIds();

これにより、カテゴリ ID の配列が得られます。私の場合、各製品は 1 つのサブカテゴリにのみ含まれます。ID から、どのカテゴリがどのカテゴリの子であるかに基づいて、論理的な順序を把握する必要があります。

目的は、製品に必要なカテゴリのレベルを呼び出して指定できるメソッドを作成することであり、そのカテゴリへのパスを返します。

次のようにカテゴリをロードできることはわかっています。

Mage::getModel('catalog/category')->load($categoryId)

PHPで何をしているのかはわかっていますが、ここで使用するロジック(およびメソッド)に少し固執して、目的を達成しています。

4

1 に答える 1

6

最も簡単な方法は、親IDが関連付けられているかどうかをテストすることです。0より大きいparent_idは、それが下位レベルのカテゴリーであることを意味します。parent_idが1に等しい場合は、ルートカテゴリより1レベル低いことを意味します。

$category = Mage::getModel('catalog/category')->load($categoryId)
echo $category->getParentId();

生のSQLは悪い習慣であるため、使用しないことをお勧めします。データベーススキーマはある時点で変更される可能性があります。

于 2012-09-11T16:44:44.410 に答える