2012-04-23 71 views
0

我有一个关于Mage::registrycategories:的问题我是一个分类页面,我通过Mage::registry('current_category')检索当前类别。我注意到它只适用于根类别,事实上,如果我访问一个子类别页面,我总是用Mage::registry('current_category')检索根类别。所以问题是:是关于后端配置,缓存还是其他?Magento - 注册表和当前类别

+0

阅读你的文章,并问:你在这里有什么问题? – 2012-04-23 14:57:39

回答

3

OOB,current_categoryMage_CatalogCategoryController::_initCategory()(参照here)被设置,并且将始终等于当前正在观看的类别。

如果您的数据不同,那么您的应用程序具有非标准功能,或者您看到缓存的结果。

+0

tnx快速回复。解决了 ;-) – Luke 2012-04-23 15:24:27

6

如果你是在一个模板(如catalog/category/view.phtml),你可以得到当前的类别与

$this->getCurrentCategory(); 

如果你是一个模型,控制器要不,试试这个(发现here):

Mage::getModel('catalog/layer')->getCurrentCategory(); 

但是,法师:: registry('current_category')是正常的路要走。

1

对于所有类别: -

<?php $_helper = Mage::helper('catalog/category') ?> 
<?php $_categories = $_helper->getStoreCategories() ?> 

当前类别

<?php $currentCategory = Mage::registry('current_category') ?> 

为我工作。