我創建了一個新的模塊,其中,我創建通過以下方法中的塊IndexController.php
其在app/code/local/Ashfame/Helloblock/controllers/IndexController.php
magento的錯誤創建塊
class Ashfame_Helloblock_IndexController extends Mage_Core_Controller_Front_Action {
public function indexAction() {
// this works fine
$block = new Ashfame_Helloblock_Block_Helloblock();
echo $block->toHtml();
}
public function layoutAction() {
// this doesn't work
$layout = Mage::getSingleton('core/layout');
$block = $layout->createBlock('ashfame_helloblock/helloblock','root');
var_dump($block); // this returns false
echo $block->toHtml();
}
}
我Block類是Ashfame_Helloblock_Block_Helloblock
並且在app/code/local/Ashfame/Helloblock/Block/Helloblock.php
由於$block
在layoutAction()
是錯誤的,PHP會拋出一個錯誤Call to a member function toHtml() on a non-object
在調試時,我發現magento正在搞清楚類名錯誤。它找出getGroupedClassName()
內的類名稱mage_Ashfame_helloblock_block
。
這裏有什麼問題?
你的app/code/local/Ashfame/Helloblock/etc/config.xml是什麼樣的? – nachito 2012-04-01 18:54:10
通過類名映射進行良好的跟蹤。探險家的心在Magento開發中非常重要。 – benmarks 2012-04-01 20:49:24
@benmarks heh謝謝!我第二個:) – Ashfame 2012-04-02 04:10:33