2011-06-07 27 views
6

我正在使用一個模塊,它調用塊中的一個函數,並且在該塊內部,我嘗試使用Mage::registry('current_category')來提取當前類別。但是它總是返回NULL。我試過從產品頁面,搜索頁面這樣做 - 仍然沒有。有沒有任何理由,它會返回NULL,我可以檢查什麼是一些東西?爲什麼Mage :: registry('current_category')會返回NULL的任何原因?

+1

你可以用調試器chekc和它得到取消設置 – 2011-06-07 11:53:11

回答

10

很空,因爲它未設置。註冊表充當全局變量的系統,不依賴PHP內置的全局支持。不能保證任何已經註冊的變量都可以在每個頁面上使用。例如,你說過你在搜索頁面上試過這個。 current_category應該在搜索頁面上?

它是空的,因爲它應該是。其中,這是設置

+3

此外,只有在URL中包含相關類別名稱的情況下,纔會爲產品頁面設置類別 – clockworkgeek 2011-06-07 16:01:05

+0

我認爲這很有道理:)謝謝 – 2011-06-08 13:33:32

+0

@clockworkgeek但在我的情況下,在poduct頁面上一些公關oducts(所有在URL中沒有類別名稱)'Mage :: registry('current_category')'返回null,但在其他情況下它返回類別對象。這是爲什麼? – KoviNET 2014-02-27 21:03:37

-1

試試這個:

$category = $this->helper('catalog/category')->getCategoryUrl(Mage::registry('current_category')); 
+0

:('致命錯誤:調用一個非對象的成員函數的getData()在... \ Magento的\程序\代碼\ core \ Mage \ Catalog \ Helper \ Category.php on line ' – 2011-06-07 12:17:46

+0

...並且您的模板文件是? – 2011-06-07 12:47:12

+1

如果Mage :: registry('current_category')的返回值爲null,則獲取 – 2015-02-10 21:27:04

相關問題